*** empty log message ***

This commit is contained in:
George Weigt 2008-08-23 13:30:37 -07:00
parent 998b9bce60
commit 2da92ec2dc
8 changed files with 23 additions and 18 deletions

View file

@ -153,6 +153,7 @@ quotient.o \
rationalize.o \
real.o \
rect.o \
rewrite.o \
roots.o \
run.o \
scan.o \

2
defs.h
View file

@ -129,7 +129,7 @@ enum {
ISINTEGER,
ISPRIME,
LAGUERRE,
LAPLACE,
// LAPLACE,
LCM,
LEADING,
LEGENDRE,

View file

@ -44,8 +44,7 @@ eval_draw(void)
if (T == symbol(NIL)) {
push(F);
push_symbol(NIL);
rewrite(1);
rewrite();
guess();
T = pop();
F = pop();

View file

@ -139,7 +139,7 @@ eval_cons(void)
case ISINTEGER: eval_isinteger(); break;
case ISPRIME: eval_isprime(); break;
case LAGUERRE: eval_laguerre(); break;
case LAPLACE: eval_laplace(); break;
// case LAPLACE: eval_laplace(); break;
case LCM: eval_lcm(); break;
case LEADING: eval_leading(); break;
case LEGENDRE: eval_legendre(); break;

View file

@ -106,7 +106,7 @@ init(void)
std_symbol("isinteger", ISINTEGER);
std_symbol("isprime", ISPRIME);
std_symbol("laguerre", LAGUERRE);
std_symbol("laplace", LAPLACE);
// std_symbol("laplace", LAPLACE);
std_symbol("lcm", LCM);
std_symbol("leading", LEADING);
std_symbol("legendre", LEGENDRE);

View file

@ -810,6 +810,10 @@ void eval_rect(void);
void rect(void);
void test_rect(void);
// rewrite.cpp
void rewrite(void);
void rewrite_tensor(void);
// roots.cpp
void eval_roots(void);
void roots(void);
@ -963,8 +967,8 @@ void test_transpose(void);
// userfunc.cpp
void eval_user_function(void);
int rewrite(int flag);
int rewrite_tensor(int flag);
int rewrite_args(void);
int rewrite_args_tensor(void);
// variables.cpp
void variables(void);

View file

@ -57,7 +57,6 @@ selftest(void)
test_gcd();
test_imag();
test_inner();
test_laplace();
test_lcm();
test_log();
test_mag();

View file

@ -57,8 +57,10 @@ eval_user_function(void)
// Evaluate the function body
push(F);
push(S);
rewrite(0);
if (iscons(S)) {
push(S);
rewrite_args();
}
eval();
}
@ -66,13 +68,13 @@ eval_user_function(void)
//
// push(F)
// push(S)
// rewrite()
// rewrite_args()
// p1 = pop()
//
// where F is an expression and S is a substitution list.
int
rewrite(int flag)
rewrite_args(void)
{
int h, n;
save();
@ -81,7 +83,7 @@ rewrite(int flag)
p1 = pop();
if (istensor(p1)) {
n = rewrite_tensor(flag);
n = rewrite_args_tensor();
restore();
return n;
}
@ -94,7 +96,7 @@ rewrite(int flag)
while (iscons(p1)) {
push(car(p1));
push(p2);
n += rewrite(flag);
n += rewrite_args();
p1 = cdr(p1);
}
list(tos - h);
@ -128,8 +130,8 @@ rewrite(int flag)
push(p3);
if (p1 != p3) {
push(p2); // subst. list
n = rewrite(flag);
if (n == 0 && flag == 0) {
n = rewrite_args();
if (n == 0) {
pop();
push(p1); // restore if not rewritten with arg
}
@ -140,7 +142,7 @@ rewrite(int flag)
}
int
rewrite_tensor(int flag)
rewrite_args_tensor(void)
{
int i, n = 0;
push(p1);
@ -149,7 +151,7 @@ rewrite_tensor(int flag)
for (i = 0; i < p1->u.tensor->nelem; i++) {
push(p1->u.tensor->elem[i]);
push(p2);
n += rewrite(flag);
n += rewrite_args();
p1->u.tensor->elem[i] = pop();
}
push(p1);