*** empty log message ***
This commit is contained in:
parent
ddb92ef43e
commit
5ef9227e3f
9 changed files with 81 additions and 43 deletions
2
Makefile
2
Makefile
|
@ -38,7 +38,7 @@ qadd.o qsub.o qmul.o qdiv.o qpow.o \
|
|||
sin.o cos.o tan.o arcsin.o arccos.o arctan.o \
|
||||
sinh.o cosh.o tanh.o arcsinh.o arccosh.o arctanh.o \
|
||||
abs.o mod.o roots.o eigen.o simplify.o for.o isprime.o index.o zero.o \
|
||||
rationalize.o lcm.o floor.o ceiling.o condense.o userfunc.o find.o \
|
||||
rationalize.o lcm.o floor.o ceiling.o condense.o userfunc.o find.o conj.o \
|
||||
init.o primetab.o bignum.o symbol.o run.o atomize.o pollard.o outer.o inner.o \
|
||||
is.o clear.o expcos.o expsin.o coeff.o log.o append.o list.o cons.o guess.o \
|
||||
main.o misc.o data.o alloc.o stack.o scan.o print.o eval.o subst.o gcd.o \
|
||||
|
|
11
clock.cpp
11
clock.cpp
|
@ -1,6 +1,13 @@
|
|||
// clock(z) = mag(z) * (-1) ^ (arg(z) / pi)
|
||||
/* Convert complex z to clock form
|
||||
|
||||
// For example clock(exp(i pi/3)) gives the result (-1)^(1/3)
|
||||
Input: push z
|
||||
|
||||
Output: Result on stack
|
||||
|
||||
clock(z) = mag(z) * (-1) ^ (arg(z) / pi)
|
||||
|
||||
For example, clock(exp(i pi/3)) gives the result (-1)^(1/3)
|
||||
*/
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "defs.h"
|
||||
|
|
30
conj.cpp
Normal file
30
conj.cpp
Normal file
|
@ -0,0 +1,30 @@
|
|||
// Complex conjugate
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "defs.h"
|
||||
|
||||
void
|
||||
eval_conj(void)
|
||||
{
|
||||
push(cadr(p1));
|
||||
eval();
|
||||
p1 = pop();
|
||||
push(p1);
|
||||
if (!find(p1, imaginaryunit)) { // example: (-1)^(1/3)
|
||||
polar();
|
||||
conjugate();
|
||||
yyclock();
|
||||
} else
|
||||
conjugate();
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
conjugate(void)
|
||||
{
|
||||
push(imaginaryunit);
|
||||
push(imaginaryunit);
|
||||
negate();
|
||||
subst();
|
||||
eval();
|
||||
}
|
22
eval.cpp
22
eval.cpp
|
@ -242,18 +242,6 @@ eval_check(void)
|
|||
push(symbol(NIL)); // no result is printed
|
||||
}
|
||||
|
||||
void
|
||||
eval_conj(void)
|
||||
{
|
||||
push(cadr(p1));
|
||||
eval();
|
||||
p1 = pop();
|
||||
push(p1);
|
||||
if (!find(p1, imaginaryunit)) // example: (-1)^(1/3)
|
||||
rect();
|
||||
conjugate();
|
||||
}
|
||||
|
||||
void
|
||||
eval_det(void)
|
||||
{
|
||||
|
@ -528,16 +516,6 @@ eval_operator(void)
|
|||
list(tos - h);
|
||||
}
|
||||
|
||||
void
|
||||
eval_power(void)
|
||||
{
|
||||
push(cadr(p1));
|
||||
eval();
|
||||
push(caddr(p1));
|
||||
eval();
|
||||
power();
|
||||
}
|
||||
|
||||
void
|
||||
eval_print(void)
|
||||
{
|
||||
|
|
10
misc.cpp
10
misc.cpp
|
@ -228,16 +228,6 @@ ssqrt(void)
|
|||
power();
|
||||
}
|
||||
|
||||
void
|
||||
conjugate(void)
|
||||
{
|
||||
push(imaginaryunit);
|
||||
push(imaginaryunit);
|
||||
negate();
|
||||
subst();
|
||||
eval();
|
||||
}
|
||||
|
||||
void
|
||||
expand(void)
|
||||
{
|
||||
|
|
17
polar.cpp
17
polar.cpp
|
@ -1,4 +1,11 @@
|
|||
// polar(z) = mag(z) * exp(i * arg(z))
|
||||
/* Convert complex z to polar form
|
||||
|
||||
Input: push z
|
||||
|
||||
Output: Result on stack
|
||||
|
||||
polar(z) = mag(z) * exp(i * arg(z))
|
||||
*/
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "defs.h"
|
||||
|
@ -8,6 +15,13 @@ eval_polar(void)
|
|||
{
|
||||
push(cadr(p1));
|
||||
eval();
|
||||
polar();
|
||||
}
|
||||
|
||||
void
|
||||
polar(void)
|
||||
{
|
||||
save();
|
||||
p1 = pop();
|
||||
push(p1);
|
||||
mag();
|
||||
|
@ -17,6 +31,7 @@ eval_polar(void)
|
|||
multiply();
|
||||
exponential();
|
||||
multiply();
|
||||
restore();
|
||||
}
|
||||
|
||||
#if SELFTEST
|
||||
|
|
16
power.cpp
16
power.cpp
|
@ -1,8 +1,8 @@
|
|||
/* Symbolic power function
|
||||
/* Power function
|
||||
|
||||
Input: tos-2 Base
|
||||
Input: push Base
|
||||
|
||||
tos-1 Exponent
|
||||
push Exponent
|
||||
|
||||
Output: Result on stack
|
||||
*/
|
||||
|
@ -10,6 +10,16 @@
|
|||
#include "stdafx.h"
|
||||
#include "defs.h"
|
||||
|
||||
void
|
||||
eval_power(void)
|
||||
{
|
||||
push(cadr(p1));
|
||||
eval();
|
||||
push(caddr(p1));
|
||||
eval();
|
||||
power();
|
||||
}
|
||||
|
||||
void
|
||||
power(void)
|
||||
{
|
||||
|
|
|
@ -188,6 +188,10 @@ void Condense(void);
|
|||
void yycondense(void);
|
||||
void test_condense(void);
|
||||
|
||||
// conj.cpp
|
||||
void eval_conj(void);
|
||||
void conjugate(void);
|
||||
|
||||
// cons.cpp
|
||||
void cons(void);
|
||||
|
||||
|
@ -349,7 +353,6 @@ void eval(void);
|
|||
void eval_sym(void);
|
||||
void eval_cons(void);
|
||||
void eval_check(void);
|
||||
void eval_conj(void);
|
||||
void eval_det(void);
|
||||
void eval_dim(void);
|
||||
void eval_divisors(void);
|
||||
|
@ -372,7 +375,6 @@ void eval_mem(void);
|
|||
void eval_multiply(void);
|
||||
void eval_number(void);
|
||||
void eval_operator(void);
|
||||
void eval_power(void);
|
||||
void eval_print(void);
|
||||
void eval_quote(void);
|
||||
void eval_rank(void);
|
||||
|
@ -624,7 +626,6 @@ int length(U *p);
|
|||
U * unique(U *p);
|
||||
void check_endianess(void);
|
||||
void ssqrt(void);
|
||||
void conjugate(void);
|
||||
void expand(void);
|
||||
void exponential(void);
|
||||
void square(void);
|
||||
|
@ -701,6 +702,7 @@ void partition(void);
|
|||
|
||||
// polar.cpp
|
||||
void eval_polar(void);
|
||||
void polar(void);
|
||||
void test_polar(void);
|
||||
|
||||
// pollard.cpp
|
||||
|
@ -710,6 +712,7 @@ void test_factor_integer_f(int len, int count);
|
|||
void test_factor_integer(void);
|
||||
|
||||
// power.cpp
|
||||
void eval_power(void);
|
||||
void power(void);
|
||||
void yypower(void);
|
||||
void power_sum(int n);
|
||||
|
|
7
rect.cpp
7
rect.cpp
|
@ -1,4 +1,9 @@
|
|||
// Return complex z in rectangular form
|
||||
/* Convert complex z to rectangular form
|
||||
|
||||
Input: push z
|
||||
|
||||
Output: Result on stack
|
||||
*/
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "defs.h"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue