Changeset 1165
- Timestamp:
- 12/19/07 06:33:04 (8 months ago)
- Files:
-
- 1.8.3/branches/devel/CHANGES.183 (modified) (1 diff)
- 1.8.3/branches/devel/game/txt/hlp/pennfunc.hlp (modified) (1 diff)
- 1.8.3/branches/devel/src/funmath.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
1.8.3/branches/devel/CHANGES.183
r1163 r1165 56 56 result. 57 57 * log(N,2) uses the C log2() function if available. 58 * log(N,e) takes the natural logarithm of N, like ln(). 58 59 * lports() now takes an optional viewer argument, a la lwho(). By 59 60 Talvo. 1.8.3/branches/devel/game/txt/hlp/pennfunc.hlp
r1124 r1165 2274 2274 log(<number>[, <base>]) 2275 2275 2276 Returns the logarithm (base 10, or the given base) of <number>. 2276 Returns the logarithm (base 10, or the given base) of <number>. 2277 <base> can be a floating-point number, or 'e' for the natural 2278 logarithm. 2279 2280 See also: ln() 2277 2281 & LPARENT() 2278 2282 lparent(<object>) 1.8.3/branches/devel/src/funmath.c
r1138 r1165 1097 1097 } 1098 1098 1099 #ifndef HAVE_LOG2 1100 static double 1101 log2(double x) 1102 { 1103 return log(x) / log(2.0); 1104 } 1105 #endif 1106 1099 1107 /* ARGSUSED */ 1100 1108 FUNCTION(fun_log) 1101 1109 { 1102 1110 NVAL num, base; 1111 bool base_is_e = false; 1112 1103 1113 if (!is_number(args[0])) { 1104 1114 safe_str(T(e_nums), buff, bp); … … 1119 1129 if (nargs == 2) { 1120 1130 if (!is_number(args[1])) { 1121 safe_str(T(e_nums), buff, bp); 1122 return; 1123 } 1124 base = parse_number(args[1]); 1125 1126 if (base <= 1) 1131 if (args[1][0] == 'e' && args[1][1] == '\0') 1132 base_is_e = true; 1133 else { 1134 safe_str(T(e_nums), buff, bp); 1135 return; 1136 } 1137 } else 1138 base = parse_number(args[1]); 1139 1140 if (base_is_e) 1141 safe_number(log(num), buff, bp); 1142 else if (base <= 1) 1127 1143 safe_str(T("#-1 BASE OUT OF RANGE"), buff, bp); 1128 1144 else if (base == 10) 1129 1145 safe_number(log10(num), buff, bp); 1130 #ifdef HAVE_LOG21131 1146 else if (base == 2) 1132 1147 safe_number(log2(num), buff, bp); 1133 #endif1134 1148 else 1135 1149 safe_number(log(num) / log(base), buff, bp); … … 1137 1151 safe_number(log10(num), buff, bp); 1138 1152 } 1139 1140 #ifndef HAVE_LOG21141 static double1142 log2(double x)1143 {1144 return log(x) / log(2.0);1145 }1146 #endif1147 1153 1148 1154 /* ARGSUSED */
