*** empty log message ***
This commit is contained in:
parent
998b9bce60
commit
2da92ec2dc
8 changed files with 23 additions and 18 deletions
1
Makefile
1
Makefile
|
@ -153,6 +153,7 @@ quotient.o \
|
|||
rationalize.o \
|
||||
real.o \
|
||||
rect.o \
|
||||
rewrite.o \
|
||||
roots.o \
|
||||
run.o \
|
||||
scan.o \
|
||||
|
|
2
defs.h
2
defs.h
|
@ -129,7 +129,7 @@ enum {
|
|||
ISINTEGER,
|
||||
ISPRIME,
|
||||
LAGUERRE,
|
||||
LAPLACE,
|
||||
// LAPLACE,
|
||||
LCM,
|
||||
LEADING,
|
||||
LEGENDRE,
|
||||
|
|
3
draw.cpp
3
draw.cpp
|
@ -44,8 +44,7 @@ eval_draw(void)
|
|||
|
||||
if (T == symbol(NIL)) {
|
||||
push(F);
|
||||
push_symbol(NIL);
|
||||
rewrite(1);
|
||||
rewrite();
|
||||
guess();
|
||||
T = pop();
|
||||
F = pop();
|
||||
|
|
2
eval.cpp
2
eval.cpp
|
@ -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;
|
||||
|
|
2
init.cpp
2
init.cpp
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -57,7 +57,6 @@ selftest(void)
|
|||
test_gcd();
|
||||
test_imag();
|
||||
test_inner();
|
||||
test_laplace();
|
||||
test_lcm();
|
||||
test_log();
|
||||
test_mag();
|
||||
|
|
22
userfunc.cpp
22
userfunc.cpp
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue