[go: up one dir, main page]

Activity for Kris Katterjohn

  • Kris Katterjohn Kris Katterjohn modified ticket #4356

    support tracing simplifying functions

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4356

    Merged. Closing this ticket.

  • Kris Katterjohn Kris Katterjohn committed [5d128a] on Code

    ChangeLog entry for bug #4356

  • Kris Katterjohn Kris Katterjohn committed [b67655] on Code

    Merge branch 'kjak-bug4356-simp-trace'

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4470

    Thanks, and I agree. Which is why I'm just curious if there is even a consensus on what the result should be even when simply multiplying two literal zeros like 0*0.0. (And I'm not suggesting that we start officially using terms like "exact zero" in Maxima. As I said in the other bug report, I was just temporarily borrowing that from Scheme.)

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4470

    See the already existing bug [#3184]. This sort of thing has been discussed elsewhere too. In that [#3184] I question whether or not we actually want to apply float contagion in some cases involving multiplication of floats with an exact zero 0. I suppose applying float contagion in these cases is the "obvious" thing to do, but it's not actually obvious to me that Maxima should do it in these cases.

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4356

    I was able to sit down earlier today and push my changes to a new branch, kjak-bug4356-simp-trace. You can check it out with git or browse it here: https://sourceforge.net/p/maxima/code/ci/kjak-bug4356-simp-trace/tree/ This includes tracing simplifying functions, the Call/Simp output changes, and the changes to how args are printed out and read in at trace breakpoints. Stavros (or anyone): if you want to play around with this but don't want to checkout this branch with git, I was able to load the...

  • Kris Katterjohn Kris Katterjohn committed [1ea26a] on Code

    Distinguish between simp and non-simp functions in trace output

  • Kris Katterjohn Kris Katterjohn committed [5aed90] on Code

    Fix bug #4356: support tracing simplifying functions

  • Kris Katterjohn Kris Katterjohn committed [f98b6b] on Code

    trace: only print and read args in a way that users know/care about

  • Kris Katterjohn Kris Katterjohn committed [d3eea9] on Code

    Add some new tests to rtest_trace

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4356

    Besides changing to Call/Simp (or whatever we want), the last thing I want to do is make traced special forms and simplifying functions play more nicely with things like the break and errorcatch trace options. As it's been implemented, if a user wants to use these options and change the list of args at a trace breakpoint then they are expected to use our internal argument calling conventions. This is just a quick example, but when tracing block and wanting to change the list of args in a call, users...

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4356

    Hi Stavros. I'd prefer using Call/Simp over brackets/parentheses. But either way this just shadows the OPERATORS property, and it works for built-in operators like "+" and functions defined with the simplifying package. (%i4) trace("+"); (%o4) [+] (%i5) 1+2+3; 1 Enter "+" [1, 2, 3] 1 Exit "+" 6 (%o5) 6 (%i6) (1+2)+3; 1 Enter "+" [1, 2] 1 Exit "+" 3 1 Enter "+" [3, 3] 1 Exit "+" 6 (%o6) 6 With display2d:false we have some goofy printing though: (%i11) display2d:false$ (%i12) (1+2)+3; 1 Enter \"\+\"...

  • Kris Katterjohn Kris Katterjohn committed [2e04f0] on Code

    maybe: add WNA check

  • Kris Katterjohn Kris Katterjohn committed [735a31] on Code

    is: use ONEARGCHECK for a more consistent WNA error message

  • Kris Katterjohn Kris Katterjohn committed [8584bb] on Code

    Remove an unnecessary PROGN

  • Kris Katterjohn Kris Katterjohn committed [b23fd8] on Code

    Set ONCE-TRANSLATED during translation of a named function's body

  • Kris Katterjohn Kris Katterjohn committed [43c087] on Code

    Add symbol checks to translators for MCALL, MARRAYREF, and MARRAYSET

  • Kris Katterjohn Kris Katterjohn committed [5a3396] on Code

    Remove the obsolete HOOK-TYPE property from some symbols

  • Kris Katterjohn Kris Katterjohn committed [60b5c5] on Code

    Consolidate some CASE clauses in TRACE-APPLY

  • Kris Katterjohn Kris Katterjohn modified ticket #4356

    support tracing simplifying functions

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4356

    I need to play around with this some more before committing, but I have this working right now: (%i2) trace(sin,cos,gamma)$ (%i3) gamma(x); 1 Enter gamma [x] 1 Exit gamma gamma(x) (%o3) gamma(x) (%i4) gamma(6); 1 Enter gamma [6] 1 Exit gamma 120 (%o4) 120 (%i5) gamma(x+5); 1 Enter gamma [x+5] 1 Exit gamma gamma(x+5) (%o5) gamma(x+5) (%i6) gamma_expand:true$ (%i7) gamma(x+5); /* recursive example */ 1 Enter gamma [x+5] 2 Enter gamma [x] 2 Exit gamma gamma(x) 1 Exit gamma x*(x+1)*(x+2)*(x+3)*(x+4)*gamma(x)...

  • Kris Katterjohn Kris Katterjohn committed [ea306d] on Code

    Fix possible lisp error when translating entier

  • Kris Katterjohn Kris Katterjohn modified ticket #3923

    Limit gives IND instead of correct finite result

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #3923

    I'm updating the name of this ticket since my aforementioned fix for [#3926] changed the result from und to ind: (%i1) R:(rr*cos(rr))/sqrt(1-cos(rr)^2)$ (%i2) limit(R,rr,0); (%o2) ind

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4377

    See also the discussion in [#4376].

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4376

    I agree that a user might expect parallel bindings here, but the documentation for ev describes what's going on: V: expression (or alternately V=expression) causes V to be bound to the value of expression during the evaluation of expr. [...] If V is a non-atomic expression then a substitution rather than a binding is performed. I don't have access to a newer Maxima version at the moment, but here are some quick examples using an older version that I currently have access to: (%i1) ev(a + b, [a, b]...

  • Kris Katterjohn Kris Katterjohn committed [87821d] on Code

    Merge branch 'master' of ssh://git.code.sf.net/p/maxima/code

  • Kris Katterjohn Kris Katterjohn committed [58eacd] on Code

    Add translation for plog (using TRANSLATE-WITH-FLONUM-OP)

  • Kris Katterjohn Kris Katterjohn committed [56fefa] on Code

    Translate atan2 using TRANSLATE-WITH-FLONUM-OP

  • Kris Katterjohn Kris Katterjohn committed [d5489b] on Code

    TRANSLATE-WITH-FLONUM-OP: handle functions that take multiple args

  • Kris Katterjohn Kris Katterjohn committed [a33f5e] on Code

    Consolidate some code for translating args and unioning modes

  • Kris Katterjohn Kris Katterjohn modified ticket #3645

    Lisp error for elliptic_f

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #3645

    Hi Barton. I'm not seeing the lisp error using a recent git build: (%i1) K : elliptic_f(%pi,%i); (%o1) elliptic_f(%pi,%i) (%i2) float(%); (%o2) 0.5907605684295543*%i+2.842544562090073 This report is a few years old and there isn't much to go on since there is no error message given. I'm going to close this ticket. If the problem still exists, then please comment or re-open the ticket.

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #3184

    (Here I'm ignoring any issues regarding the actual implementation of any of this.) I wonder if there is a consensus on what the result should be, even for these specific cases of multiplying two literal zeros like 0*0.0 or 0.0*0. Of course we could have the result of multiplying a 0.0 with a 0 be a 0.0 just because float contagion. Certainly many languages, including Common Lisp, handle it this way. Alternatively, if I borrow some Scheme terminology for a moment, we could have the result of multiplying...

  • Kris Katterjohn Kris Katterjohn committed [3626c4] on Code

    Fix lisp error from quad_qawf when given an invalid trig arg

  • Kris Katterjohn Kris Katterjohn committed [7e4a2f] on Code

    Use %%PRETTY-FNAME in more quadpack error messages

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4374

    I can't test in a recent Maxima build at the moment, but see bug [#4121] where it was argued that neither atan2(0,pz) nor atan2(0,nz) should return a nounform. Looks like in a newer Maxima we should have atan2(0,pz) yielding 0 and atan2(0,nz) yielding %pi.

  • Kris Katterjohn Kris Katterjohn modified ticket #2317

    subst allows more than 3 arguments

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #2317

    I'm closing this ticket since we have much better wna checks now. (%i1) subst(a,b,x+b,p,q,w); subst: expected at most 3 arguments but got 6: [a,b,x+b,p,q,w] -- an error. To debug this try: debugmode(true);

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #733

    Part of the definition of eval_when is in transl, where it can do useful stuff. But see also [1560c9].

  • Kris Katterjohn Kris Katterjohn committed [f317de] on Code

    Fix the misplaced TRANSLATE property for atan2

  • Kris Katterjohn Kris Katterjohn committed [718ab0] on Code

    Fix outdated comment that refers to the old package name BIGFLOAT-USER

  • Kris Katterjohn Kris Katterjohn committed [820fe5] on Code

    MFUNCTION-CALL-AUX: replace an EVAL with SYMBOL-VALUE

  • Kris Katterjohn Kris Katterjohn committed [7f3130] on Code

    transl: do not assume a catch's mode based on the last body form

  • Kris Katterjohn Kris Katterjohn committed [1a0107] on Code

    transl: avoid generating (RETURN (GO ...)) at the end of a PROG

  • Kris Katterjohn Kris Katterjohn committed [40f922] on Code

    Remove the obsolete DEFMTRFUN-EXTERNAL macro

  • Kris Katterjohn Kris Katterjohn committed [88b983] on Code

    transl: simplify MRETURN mode calculation

  • Kris Katterjohn Kris Katterjohn committed [c92d54] on Code

    transl: remove outdated and incorrect comment from TR-MPROG-BODY

  • Kris Katterjohn Kris Katterjohn committed [1560c9] on Code

    transl: fix toplevel eval_when for eval and load times

  • Kris Katterjohn Kris Katterjohn modified ticket #3191

    parsing problem: thru 3 for i in [a,b]

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #3191

    Fixed by commit [f2a4dd].

  • Kris Katterjohn Kris Katterjohn committed [f2a4dd] on Code

    Fix bug #3191: parsing problem: thru 3 for i in [a,b]

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4199

    Using git HEAD it seems that I'm seeing what Ray was seeing: (%i1) display2d; (%o1) false (%i2) taylor(-1,x,0,0); (%o2) +(-1) (%i3) taylor(x-1,x,0,1); (%o3) -1+x (%i4) display2d : true$ (%i5) taylor(-1,x,0,0); (%o5)/T/ - 1 + . . . (%i6) taylor(x-1,x,0,1); (%o6)/T/ - 1 + x + . . . So out of these it looks like only %o2 has the display issue now. SBCL and CLISP on Linux.

  • Kris Katterjohn Kris Katterjohn modified ticket #3191

    parsing problem: thru 3 for i in [a,b]

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #3191

    diff --git a/src/nparse.lisp b/src/nparse.lisp index b32a03fd4..c2de06e0a 100644 --- a/src/nparse.lisp +++ b/src/nparse.lisp @@ -1558,7 +1558,7 @@ ($do . ()) ($for . ($for)) ($from . ($in $from)) - ($in . ($in $from $step $next)) + ($in . ($in $from $step $next $thru)) ($step . ($in $step $next)) ($next . ($in $step $next)) ($thru . ($in $thru)) ;$IN didn't used to get checked for No problems with the test suite, share test suite or rtest_translator. Before: (%i1) '(thru 3 for i in [1, 2, 3, 4] do...

  • Kris Katterjohn Kris Katterjohn modified ticket #4260

    translate fails with go tag in final position

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4260

    Thanks for the report. Fixed by commit [0313d7]. (%i1) p(x) := for n thru 4 do block(if n = 2 then go(HOP), print(n), HOP)$ (%i2) p (1); 1 3 4 (%o2) done (%i3) translate (p); (%o3) [p] (%i4) p (1); 1 3 4 (%o4) done

  • Kris Katterjohn Kris Katterjohn committed [0313d7] on Code

    Fix bug #4260: translate fails with go tag in final position

  • Kris Katterjohn Kris Katterjohn committed [0c0583] on Code

    Add some more tests for go/return to rtest_translator

  • Kris Katterjohn Kris Katterjohn committed [8b552f] on Code

    transl: change some go/return warnings to errors

  • Kris Katterjohn Kris Katterjohn committed [29f840] on Code

    Fix the error message for (interpreted) return

  • Kris Katterjohn Kris Katterjohn modified ticket #4307

    partswitch affects op and operatorp

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4307

    Hi Robert, thanks for commenting. Fixed by commit [ba1819].

  • Kris Katterjohn Kris Katterjohn committed [fe3ee4] on Code

    Mention inflag in the docs for operatorp

  • Kris Katterjohn Kris Katterjohn committed [ba1819] on Code

    Fix bug #4307: partswitch affects op and operatorp

  • Kris Katterjohn Kris Katterjohn modified ticket #3262

    parser gives an error for :lisp following a comment

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #3262

    Closing this as a "duplicate" of the newer [#4086] since there has been some activity in that one.

  • Kris Katterjohn Kris Katterjohn modified ticket #4260

    translate fails with go tag in final position

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4086

    The :lisp construct has several other known limitations as well: https://sourceforge.net/p/maxima/mailman/message/37128965/ If you're interested, the lisp_eval described in that post is now in Maxima under the name eval_string_lisp.

  • Kris Katterjohn Kris Katterjohn created ticket #4307

    partswitch affects op and operatorp

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4194

    I also don't see any inconsistency in operatorp(x,op) returning false and op(x) signaling an error. I also think that operatorp would be more useful if it returned false for an expression without an operator. (And FWIW in commercial Macsyma 421.45 operatorp(x,op) returns false.) However, I do see some problems in the proposed definition above that adds a LISTP check. operatorp, like op, is affected by part flags like inflag. (This is documented for op but not for operatorp.) (%i1) inflag : false$...

  • Kris Katterjohn Kris Katterjohn committed [f97770] on Code

    BIND-TRANSL-STATE: bind *LOCAL* instead of the obsolete LOCAL

  • Kris Katterjohn Kris Katterjohn modified ticket #3996

    parse_string fails to parse string which contains semicolon

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #3996

    Fixed by commit [e1f4de].

  • Kris Katterjohn Kris Katterjohn committed [e1f4de]

    Fix bug #3996: parse_string fails to parse string which contains semicolon

  • Kris Katterjohn Kris Katterjohn modified ticket #3266

    Compiling: "If" is handled differently on translating and interpreting

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #3266

    Closing this ticket. We now get the desired behavior. See bug [#4008] for more. (%i1) foo (x) := if x > 0 then 1 else 0$ (%i2) foo (u); (%o2) if u > 0 then 1 else 0 (%i3) translate (foo)$ (%i4) foo (u); (%o4) if u > 0 then 1 else 0

  • Kris Katterjohn Kris Katterjohn modified ticket #3996

    parse_string fails to parse string which contains semicolon

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #3996

    Below is a patch with tests. I see no problems with the test suite or share test suite. diff --git a/share/stringproc/eval_string.lisp b/share/stringproc/eval_string.lisp index 72e5bf4ca..884d44769 100644 --- a/share/stringproc/eval_string.lisp +++ b/share/stringproc/eval_string.lisp @@ -54,12 +54,9 @@ (let ((*mread-prompt* "")) (third (mread *parse-string-input-stream*)) )) -;; (ENSURE-TERMINATOR S) -- if the string S does not contain dollar sign `$' or semicolon `;' -;; then append a dollar sign...

  • Kris Katterjohn Kris Katterjohn committed [48e32d]

    draw: avoid lisp error when region's expr doesn't evaluate to boolean

  • Kris Katterjohn Kris Katterjohn committed [4909fe]

    Replace IS-BOOLE-CHECK with the new $IS-BOOLE-EVAL

  • Kris Katterjohn Kris Katterjohn modified ticket #4008

    translator and prederror

  • Kris Katterjohn Kris Katterjohn posted a comment on ticket #4008

    I've committed fixes and improvements related to various predicates, operators, if, do, is, and maybe. Some of these are related to prederror and some are other things I noticed while working on the prederror stuff. Now translated code now behaves the same as interpreted code wrt prederror. I have many tests that compare the results of translated code with the results of interpreted code. Here's the new behavior for the original example in this bug report: (%i1) F(x) := if equal(x,107) then 6 else...

  • Kris Katterjohn Kris Katterjohn committed [8562e2]

    Merge branch 'master' of ssh://git.code.sf.net/p/maxima/code

  • Kris Katterjohn Kris Katterjohn committed [2e0f08]

    Change the translation of # to avoid the problematic TRP-NOT

  • Kris Katterjohn Kris Katterjohn committed [3f4213]

    Merge branch (bug #4008)

  • Kris Katterjohn Kris Katterjohn committed [436eaa]

    Translated if now honors prederror

  • Kris Katterjohn Kris Katterjohn committed [4278ec]

    Update the ChangeLog for bug #4008

  • Kris Katterjohn Kris Katterjohn committed [e9576a]

    Translated do now binds prederror to true when evaluating test

  • Kris Katterjohn Kris Katterjohn committed [f7b469]

    Improve the translation of notequal

  • Kris Katterjohn Kris Katterjohn committed [cf7c66]

    Fix the bogus translations of <= and >=

  • Kris Katterjohn Kris Katterjohn committed [d1914d]

    Fix the bogus translations of and/or/not when prederror is false

  • Kris Katterjohn Kris Katterjohn committed [7f12bb]

    Consolidate code for translating some relational operators

  • Kris Katterjohn Kris Katterjohn committed [159bda]

    Fix the inefficient evaluation of translated predicates

  • Kris Katterjohn Kris Katterjohn committed [32deb0]

    Improve the transl modes for is/maybe in the boolean case

  • Kris Katterjohn Kris Katterjohn committed [223d12]

    trpred functions now return mode info

  • Kris Katterjohn Kris Katterjohn committed [8ef8ff]

    Consolidate code for evaluating and/or/not expressions

  • Kris Katterjohn Kris Katterjohn committed [e7b9d4]

    MEVALP_TR: return result of MEVALP1_TR instead of unknown

  • Kris Katterjohn Kris Katterjohn committed [baf417]

    MEVALP1_TR: only return what MEVALP2 does if it's boolean

1 >