From: Squeak <squeak_at_xirr.com>

Date: Wed, 8 Sep 1999 01:54:00 -0400 (EDT)

Date: Wed, 8 Sep 1999 01:54:00 -0400 (EDT)

Quirk: (10!)%5 != 10! mod 5 ( 0 != 1)

That is probably correct behavior though.

Quirk: 1^(-1) mod n yields "Can't do mods on floating or rational"

I would think 1/1 would be simplified to 1?

Quirk: multiple mods ALMOST work right

51 mod 49 mod 7

Division by zero!

= 2

a mod b mod c mod d mod e mod f ... = a mod gcd(b,c,d,e,f,...)

You give the right answer but the divide by zero is disturbing :)

Quirk: If you use the "mod n" notation, it might be a better idea to use

modulo arithemtic. Specifically 1/3 mod 5 = 2. And 1/2 mod 4 = Division

by zero divisor undefined.

Quirk (in nls): configure.in has more languages than the package does.. i

read somehting in the changelog about someone taking unused languages out?

They might have got back in? I don't do nls, maybe it is supposed to be

that way.

Bug: |-3| mod 5 isn't 2 ... maybe thats a quirk .. but heres a bug

-3 mod 5 = 8 ... (-3) mod 5 as well... (answer should be 2, or as

worst case -3).

Quirk: 1 mod 0.5 = (1mod0.5) (Can't do mod calculations of non-integers)

Yet (1mod0.5) is a parse error, suggest putting space around the "mod"

word in the print e_tree or whatever.

Quibble: I think 2.345e+77-34i is unreadable and that results should have

spaces around the +, but it parses either way. Purely a pet peeve.

Quibble: Sometimes you use TRUE and sometimes you use 1 as the last arg to

print_e_tree. To make code leaner and meaner, it is good to make it easily

readable first :)

Quibble: MACROS make code harder to understand, inline functions are

debuggable and are just as fast in any recent (post 95) gcc. If a

commercial compiler can't keep up with gcc, you don't need to support it.

To find one bug in genius-0.4.2 i know i had to debug the source code

after running it thru the pre processor so i could see which out of 10

lines of code actually caused a segfault. :) Its your code though, so

write it how you will. :)

Grin: Those internel functions written in gel are cool. (Cool as in oh god

don't keep them that way, but wow what a cool temp. hack).

Quibble: on line 1065 ish of mpwrap ... it would be nice to note

that that crazy if( q < 0 && f> 0) then f=-f stuff is a /* XXX HACK to

get around bug in gmp */ Just in case someone else maintains the code at a

later point.

Question: Why downgrade to bison-1.25 from bison-1.27? Was there a problem

with bison-1.27? (I use bison-1.27 too so I'm curious)

I'll ask around on how to define ln(A) for matricies.

--- eval.c.old Wed Sep 8 01:28:06 1999

+++ eval.c Wed Sep 8 01:28:29 1999

@@ -3681,11 +3681,11 @@

mpw_mod(n->val.value,n->val.value,mod);

if(error_num) { /*XXX: for now ignore errors in moding*/

error_num = 0;

}

if(mpw_sgn(n->val.value)<0)

- mpw_sub(n->val.value,mod,n->val.value);

+ mpw_add(n->val.value,mod,n->val.value);

} else if(n->type == MATRIX_NODE) {

int i,j;

int w,h;

if(!n->mat.matrix) return;

w = matrixw_width(n->mat.matrix);

That should be the patch for the only real bug.

Received on Tue Sep 07 1999 - 22:30:10 CDT

*
This archive was generated by hypermail 2.2.0
: Sun Apr 17 2011 - 21:00:02 CDT
*