2016-09-21 8 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 

아주 사소한 수준의 통화에서 이러한 솔루션 또는 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

감사합니다. 이것은 내 목적을 위해 작동합니다. 추측하고 추적에 몇 가지 기능을 추가했지만 내가 원하는 결과가되지 않았습니다. 그러나 나는 maxima가 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

관련 문제