File: cmds.h

package info (click to toggle)
rpncalc 1.35
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 1,376 kB
  • ctags: 184
  • sloc: sh: 3,288; ansic: 878; lex: 347; sed: 312; yacc: 118; makefile: 91
file content (117 lines) | stat: -rw-r--r-- 2,767 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/************************************************************************
 * cmds.h -- part of rpncalc.c						*
 *									*
 * Refer to rpncalc.c for copyrights and license permissions.           *
 ************************************************************************/

/* $Id: cmds.h,v 1.8 2000/04/02 16:11:21 david Rel david $
 * $Log: cmds.h,v $
 * Revision 1.8  2000/04/02 16:11:21  david
 * Removed function prototype typedef and moved function prototype direct
 * into struct cmd.
 *
 * Revision 1.7  1999/09/12 20:50:49  david
 * Added constant and variable tables instead of functions.
 * Added ip and fp.
 *
 * Revision 1.6  1999/03/06 14:41:20  david
 * Added new commands.
 *
 * Revision 1.5  1997/09/11 21:21:01  david
 * libc6: pow10 and pow2 are gone; use our own definitions.
 *
 * Revision 1.4  1997/01/19 18:50:45  david
 * Declarations for cmds.c
 *
 * Revision 1.4  1997/01/19 18:19:23  david
 * Provided all declarations.
 *
 * Revision 1.2  1996/09/13 20:21:29  david
 * lclint additions
 *
 * Revision 1.1  1996/07/13 20:49:35  david
 * Cleanup and renaming due to linting of the source.
 *
 * Revision 1.0  1995/12/31 18:16:22  david
 * Initial revision
 *
 */

#include <math.h>

double rnd(void);

double pow2(double y);
double pow10(double y);
double chs(double f);
double sign(double f);
double sqr(double f);
double inv(double f);
double ip(double f);
double log2(double f);
double fact(double d);
double fp(double f);
double prec(double p);
double not(double l);
double sr(double l);
double sl(double l);
double srb(double l);
double slb(double l);

double rdz(double s);

double plus(double s1, double s2);
double minus(double s, double m);
double multiply(double f1, double f2);
double divide(double n, double d);

double idiv(double dn, double dd);

double mod(double dn, double dd);
long int stein(double d1, double d2);
double gcd(double dn, double dd);
double and(double l1, double l2);
double or(double l1, double l2);
double xor(double l1, double l2);

double percent(double x, double y);
double deltapercent(double x, double y);
double percenttotal(double x, double y);

double min(double x, double y);
double max(double x, double y);

double sum(void);
double prod(void);

struct cmd {
  const char *fname;
  const short argno;			/* 0..2: no of arguments */
  short pushrestostack;
  double (*fnct)();
  const char  *helptext;
};

struct cnst {
  const char   *vname;
  const double  value;
  const char   *helptext;
};

struct var {
  const char   *vname;
  double  value;
  int   isconst;
};

const size_t noofconst;

size_t noofvars;
const size_t maxnoofvars;

double help(struct cmd *f);
double warranty(void);
double quit(void);

int cmdcmp(const void *f1, const void *f2);
int varcmp(const void *f1, const void *f2);