Re:numerical function



>>>>> "go" == go furuya <go_furuya@infoseek.jp> writes:

    go> I wrote
    >> so i think that you (shoud)define sin1(Z),
    >> (C5) sin1(z) := trigexpand(sin(rectform(z));

    >> (C6)sin1((1+%i)/sqrt(2));
    >> (d6) %ICOS(1/sqrt(2))SINH(1/sqrt(2))+COSH(1/sqrt(2))SIN(1/sqrt(2))

    go> this essential point is rectform.
    go> see

    go> (C7)trigexpand(sin((1+%i)/sqrt(2)));
    go> (d7) sin((1+%i)/sqrt(2))
    go> (C8)%,numer;
    go> (d8) sin((1+%i)/sqrt(2))

    go> It is difficult to transform argument one pattern to
    go> another,automatically.

I don't follow.

For my simp-%sn, I had some code like

	  ((and $numer (complex-number-p u)
		(complex-number-p m))
	   ;; For complex values.  Should we really do this?
	   (format t "real u = ~A~%" ($realpart u))
	   (format t "imag u = ~A~%" ($imagpart u))
	   (let ((result (sn (complex ($realpart u) ($imagpart u))
			     (complex ($realpart m) ($imagpart m)))))
	     (complexify result)))

Where complex-number-p was a function that looked at u to see it
looked like a number or a list of the form '((mplus) x ((mtimes) y
%i)).  complexify just took #c(a b) and converted it to '((mplus) a
((mtimes) b %i)).

There might be other implications about doing this, but in principal
this should work.

    go> At least you shoud read trigi.lisp carefully again.

To learn what?  Really, I want to know what you think I should learn
from reading this.

Ray