|
|
1.1 ! root 1: /* Copyright (c) 1988 AT&T */ ! 2: /* All Rights Reserved */ ! 3: ! 4: /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */ ! 5: /* The copyright notice above does not evidence any */ ! 6: /* actual or intended publication of such source code. */ ! 7: ! 8: /* @(#)picasso:math.c 1.0 */ ! 9: #include "picasso.h" ! 10: #include "y.tab.h" ! 11: ! 12: double Log(x) ! 13: double x; ! 14: { ! 15: return errcheck(log(x), "log"); ! 16: } ! 17: ! 18: double Log10(x) ! 19: double x; ! 20: { ! 21: return errcheck(log10(x), "log"); ! 22: } ! 23: ! 24: double Exp(x) ! 25: double x; ! 26: { ! 27: return errcheck(exp(x), "exp"); ! 28: } ! 29: ! 30: double Sqrt(x) ! 31: double x; ! 32: { ! 33: return errcheck(sqrt(x), "sqrt"); ! 34: } ! 35: ! 36: double Cos(x) ! 37: double x; ! 38: { ! 39: /* if (fmod(x,180.) == 90) ! 40: return 0; */ ! 41: return cos(x/* * M_PI/180 */); ! 42: } ! 43: ! 44: double Sin(x) ! 45: double x; ! 46: { ! 47: /* if (fmod(x,180.) == 0) ! 48: return 0; */ ! 49: return sin(x/* * M_PI/180 */); ! 50: } ! 51: ! 52: double Pow(x, y) ! 53: double x, y; ! 54: { ! 55: return errcheck(pow(x,y), "pow"); ! 56: } ! 57: ! 58: double Atan2(y, x) ! 59: double y, x; ! 60: { ! 61: return (atan2(y, x)/* * 180.0/M_PI */); ! 62: } ! 63: ! 64: double Minvar(s) ! 65: char *s; ! 66: { ! 67: struct symtab *p; ! 68: double m; ! 69: int i; ! 70: ! 71: p = findvar(s, VARNAME); ! 72: if (p->s_dim == 0) ! 73: m = p->s_val.f; ! 74: else for (m = p->s_val.a[0], i = 1; i < p->s_dim; ++i) ! 75: if (p->s_val.a[i] < m) ! 76: m = p->s_val.a[i]; ! 77: return m; ! 78: } ! 79: ! 80: double Minlist() ! 81: { ! 82: double m; ! 83: ! 84: for (m = exprlist[--nexpr]; nexpr; ) ! 85: if (exprlist[--nexpr] < m) ! 86: m = exprlist[nexpr]; ! 87: return m; ! 88: } ! 89: ! 90: double Maxvar(s) ! 91: char *s; ! 92: { ! 93: struct symtab *p; ! 94: double m; ! 95: int i; ! 96: ! 97: p = findvar(s, VARNAME); ! 98: if (p->s_dim == 0) ! 99: m = p->s_val.f; ! 100: else for (m = p->s_val.a[0], i = 1; i < p->s_dim; ++i) ! 101: if (p->s_val.a[i] > m) ! 102: m = p->s_val.a[i]; ! 103: return m; ! 104: } ! 105: ! 106: double Maxlist() ! 107: { ! 108: double m; ! 109: ! 110: for (m = exprlist[--nexpr]; nexpr; ) ! 111: if (exprlist[--nexpr] > m) ! 112: m = exprlist[nexpr]; ! 113: return m; ! 114: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.