2016-09-21 6 views
1

申し訳ありませんが、これは初心者の質問ですが、私はこれに関するドキュメントや他のstackoverflowの質問を見つけることができませんでした。私は式や方程式を解く際に呼び出されるすべての最大関数のスタックトレース全体を見たいと思っています。トレース、バックトレース、デバッグモードを試しました。さまざまな表示機能と印刷機能を見ても、機能はありません。MAXIMAでは、コールスタック全体をどのように印刷するのですか?

例1:

(%i1) is(equal((a+b)^2, a^2+b^2+2*a*b)); 
(%o1) true 

例2:

(%i2) trace(factor); 
(%o2) [factor] 
(%i3) trace_options(factor, info); 
(%o3) [info] 
(%i4) factor((x^2 - 7*x + 10)/(x - 5)); 
1 Enter ?factor [(x^2-7*x+10)/(x-5)] -> true 
1 Exit ?factor x-2 -> true 
(%o4) x-2 

私はMaximaはminutestレベルの呼び出しにこれらのソリューションやconclusions.Infoの導出で実行し、その結果すべての中間段階を見てみたいですさらに良いです。

おかげで、 RBあなたはbuiltins-list.txtに記載されているすべての機能をトレースすることができますハックとして

答えて

0

l: read_list("builtins-list.txt") $ 
for e in l do errcatch(apply('trace, [e])) $ 
untrace(bfloatp) $ /* to limit output */ 
is(equal((a+b)^2, a^2+b^2+2*a*b)) $ 

リターン:

(%i5) is(equal((a+b)^2, a^2+b^2+2*a*b)) $ 
          2 2 2 
1 Enter is [is(equal((a + b) , a + b + 2 a b))] 
1 Enter ratp [2] 
1 Exit ratp false 
1 Enter ratp [b + a] 
1 Exit ratp false 
1 Enter ratp [2] 
1 Exit ratp false 
1 Enter ratp [b + a] 
1 Exit ratp false 
1 Enter ratp [2] 
1 Exit ratp false 
1 Enter ratp [a] 
1 Exit ratp false 
1 Enter ratp [2] 
1 Exit ratp false 
1 Enter ratp [b] 
1 Exit ratp false 
         2 
1 Enter setp [(b + a) ] 
1 Exit setp false 
        2   2 
1 Enter subvarp [b + 2 a b + a ] 
1 Exit subvarp false 
        2   2 
1 Enter subvarp [b + 2 a b + a ] 
1 Exit subvarp false 
         2 2   2 
1 Enter ratsimp [(b + a) - b - 2 a b - a ] 
         2 2   2 
    1 Enter ratp [(b + a) - b - 2 a b - a ] 
    1 Exit ratp false 
           2 2   2 
    1 Enter totaldisrep [(b + a) - b - 2 a b - a ] 
          2 2   2 
    1 Exit totaldisrep (b + a) - b - 2 a b - a 
    1 Enter ratdisrep [0] 
    1 Enter ratp [0] 
    1 Exit ratp true 
    1 Exit ratdisrep 0 
1 Exit ratsimp 0 
1 Enter facts [] 
1 Exit facts [] 
1 Enter niceindices [0] 
1 Exit niceindices 0 
1 Enter constantp [0] 
    1 Enter numberp [0] 
    1 Enter ratnump [0] 
    1 Exit ratnump true 
    1 Exit numberp true 
1 Exit constantp true 
1 Enter rectform [0] 
1 Exit rectform 0 
1 Enter sign [0] 
1 Exit sign zero 
1 Exit is true 
1 Enter concat [, %o, 5] 
1 Exit concat %o5 
1 Enter concat [, %i, 5] 
1 Exit concat %i5 
1 Enter concat [, %i, 6] 
1 Exit concat %i6 
+0

感謝。これは私の目的のために働く。私はトレースにいくつかの機能を追加して追加していましたが、私が望むものは得られませんでした。しかし、私は最大値がa^2 + b^2 + 2 * a * b(or)(2)の係数a^2 + b^2 + 2 * a * bを(a + b)^ 2に変換し、lhsとrhsを比較して等価性を求める。 ratexpand()とfactor()は全く呼び出されず、totaldisrep&ratdisrepはratsimpによって呼び出され、何らかの形でlhsとrhsが等しいと結論付けているようです。しかし、このハックのおかげで、それは私に焦点を当てるべき機能について私に洞察を与えました。 – BReddy

関連する問題