$NetBSD: patch-ab,v 1.2 2002/05/12 23:21:54 dmcmahill Exp $

adds physical constants:  k,q,e0,mu0,c.  

*** button_def.c.orig	Wed Apr  3 22:46:10 2002
--- button_def.c	Fri Apr 26 10:56:28 2002
***************
*** 34,39 ****
--- 34,49 ----
  extern void baseCmdCB(GtkWidget *, gpointer);
  
  FuncInfo invisible1[] = {
+    { "k", "k", "Boltzmann's constant (Joules/Kelvin).",
+       genericButtonCB, (void *)BoltzmannStack },
+    { "q", "q", "Electron Charge (coulomb).",
+       genericButtonCB, (void *)ChargeStack },
+    { "e0", "e0", "Free space permitivitty (Farads/meter).",
+       genericButtonCB, (void *)E0Stack },
+    { "mu0", "mu0", "Free space permeability (Henries/meter).",
+       genericButtonCB, (void *)Mu0Stack },
+    { "c", "c", "Free space speed of light (meters/second).",
+       genericButtonCB, (void *)LightSpeedStack },
     { "Hex", "hex", "Hexidecimal display mode.",
        baseCmdCB, (void *)HEXIDECIMAL },
     { "Dec", "dec", "Decimal display mode.",
***************
*** 137,143 ****
     { 8, 8, num456 },
     { 8, 8, num123 },
     { 8, 8, num0 },
!    { 14, 0, invisible1 }
  };
  
  
--- 147,153 ----
     { 8, 8, num456 },
     { 8, 8, num123 },
     { 8, 8, num0 },
!    { 19, 0, invisible1 }
  };
  
  
*** constant.c.orig	Wed Apr  3 22:46:11 2002
--- constant.c	Fri Apr 26 10:51:06 2002
***************
*** 24,29 ****
--- 24,34 ----
  #include "real.h"
  #include "complex.h"
  
+ Real *realBoltzmann;
+ Real *realCharge;
+ Real *realE0;
+ Real *realMu0;
+ Real *realLightSpeed;
  Real *realPi;
  Real *realPi2;
  Real *realZero;
***************
*** 35,43 ****
--- 40,56 ----
  Real *real180Pi;
  Cmplx *cmplxI;
  
+ #define LIGHTSPEED	2.997923e8
+ #define MU0				(4*M_PI*1.0e-7)
+ 
  void setup_constant(){
     Real *tmp;
  
+    realBoltzmann = setRealDouble(newReal(), 1.380622e-23);
+    realCharge = setRealDouble(newReal(), 1.6021917e-19);
+    realE0 = setRealDouble(newReal(), 1.0/(LIGHTSPEED*LIGHTSPEED*MU0));
+    realMu0 = setRealDouble(newReal(), MU0);
+    realLightSpeed = setRealDouble(newReal(), LIGHTSPEED);
     realPi = setRealDouble(newReal(), M_PI);
     realPi2 = setRealDouble(newReal(), M_PI/2.0);
     realZero = setRealDouble(newReal(), 0.0);
*** constant.h.orig	Wed Apr  3 22:46:11 2002
--- constant.h	Fri Apr 26 10:55:24 2002
***************
*** 22,27 ****
--- 22,32 ----
  #ifndef __CONSTANT_H
  #define __CONSTANT_H
  
+ extern Real *realBoltzmann;
+ extern Real *realCharge;
+ extern Real *realE0;
+ extern Real *realMu0;
+ extern Real *realLightSpeed;
  extern Real *realPi;
  extern Real *realPi2;
  extern Real *realZero;
*** funcs.c.orig	Wed Apr  3 22:46:11 2002
--- funcs.c	Fri Apr 26 10:39:46 2002
***************
*** 95,100 ****
--- 95,165 ----
  
  }
  
+ void BoltzmannStack(){
+    Number *n1;
+ 
+    finishEditor();
+ 
+    SaveStackState(0);
+ 
+    n1 = setNumberReal(newNumber(), realBoltzmann);
+    Push(n1);
+ 
+    UndoStackState(1);
+ }
+ 
+ void ChargeStack(){
+    Number *n1;
+ 
+    finishEditor();
+ 
+    SaveStackState(0);
+ 
+    n1 = setNumberReal(newNumber(), realCharge);
+    Push(n1);
+ 
+    UndoStackState(1);
+ }
+ 
+ void E0Stack(){
+    Number *n1;
+ 
+    finishEditor();
+ 
+    SaveStackState(0);
+ 
+    n1 = setNumberReal(newNumber(), realE0);
+    Push(n1);
+ 
+    UndoStackState(1);
+ }
+ 
+ void Mu0Stack(){
+    Number *n1;
+ 
+    finishEditor();
+ 
+    SaveStackState(0);
+ 
+    n1 = setNumberReal(newNumber(), realMu0);
+    Push(n1);
+ 
+    UndoStackState(1);
+ }
+ 
+ void LightSpeedStack(){
+    Number *n1;
+ 
+    finishEditor();
+ 
+    SaveStackState(0);
+ 
+    n1 = setNumberReal(newNumber(), realLightSpeed);
+    Push(n1);
+ 
+    UndoStackState(1);
+ }
+ 
  void PiStack(){
     Number *n1;
  
*** funcs.h.orig	Wed Apr  3 22:46:11 2002
--- funcs.h	Fri Apr 26 10:40:27 2002
***************
*** 41,46 ****
--- 41,51 ----
  void PopStack();
  void PushStack();
  
+ void BoltzmannStack();
+ void ChargeStack();
+ void E0Stack();
+ void Mu0Stack();
+ void LightSpeedStack();
  void PiStack();
  
  void NegStack();
*** CHANGES.orig	Wed Apr  3 22:37:30 2002
--- CHANGES	Fri Apr 26 16:46:35 2002
***************
*** 29,31 ****
--- 29,38 ----
  
  v1.1.2
     Add db10 and db20 commands.
+ 
+ v1.1.2nb1
+    Add k,q,e0,mu0, and c commands for Boltzmann's constant
+    (Joules/Kelvin), electron charge (coulomb), free space
+    permitivitty (Farads/meter), free space permeability
+ 	(Henries/meter), and the speed of light in a vacuum 
+ 	(meters/second).
*** help.c.orig	Wed Apr  3 22:46:11 2002
--- help.c	Fri Apr 26 16:47:46 2002
***************
*** 28,34 ****
  
  #define HELP_TXT \
  "\n\
! GRPN  v1.1.2\n\
  \n\
  By: Paul Wilkins\n\
      paul.wilkins@analog.com\n\
--- 28,34 ----
  
  #define HELP_TXT \
  "\n\
! GRPN  v1.1.2nb1\n\
  \n\
  By: Paul Wilkins\n\
      paul.wilkins@analog.com\n\
