showtime:true;とすれば、以後計算するたびに計算時間が表示される。
maximaをlispで拡張する
maximaをlispで拡張しようとするときの備忘録。
2010年11月20日土曜日
meval
defmfun で定義されたlispの関数はmevalで評価できる。
(defmfun $test (&rest keys) (let () (setf keys (push '$factorout keys)) (meval keys) ))
2010年11月13日土曜日
自作関数のメモ(プロトタイプの時の)
式に指定した関数が使われているか調べる。式に積分、伊藤積分が含まれる場合、その要素の中も調べる。
file:
file:
file:
depends_func (expr func) > true (if expr depends func) > false (otherwise) ex. (depends_func expr 'mplus)
file:
file:
file:
ラベル:
expansion of maxima
maximaで使用する数式の関数f(x):=x+1などをlisp内で定義する
(setf (symbol-plist $f) '(MPROPS (NIL MEXPR ((LAMBDA) ((MLIST) $x) (MPLUS $x 1)))))maximaで
f(x):=x+1;
としたことと同義。
下記のようにすれば、maximaの表示上は定義してように見えるが、その関数を呼び出すことはできない。
(list `(mdefine simp) func2 (mul2 ini (pow '%e ($intstyle e2 y))))
メモ
(setq func1 (concat x n)) (setq func2 (list `(,func1 simp) y)) (setf result1 (mul2 ini (pow '%e ($intstyle e2 y))) ) (setf result2 `(MPROPS (NIL MEXPR ((LAMBDA) ((MLIST) ,y) ,result1))) ) (setf (symbol-plist func1) result2)
ラベル:
expansion of maxima
2010年11月11日木曜日
2010年11月10日水曜日
登録:
投稿 (Atom)