[CAS] PART FUNCTION on sum of n terms

07042016, 01:18 AM
(This post was last modified: 03022018 01:46 PM by compsystems.)
Post: #1




[CAS] PART FUNCTION on sum of n terms
Hello, the part function works fine, but there is a problem. If the expression is a sum of n terms (a+b+c+d+e+f+.... n), returns the number of terms, that make within a program, the expression parser will be dificultier
part( a + b + c + d + e + f +.... n) returns n the TI68k calculators return in a group of two terms PHP Code: part( a + b + c + d + e + f +.... n) => part( (a) +(b+c+d+e+f+.... n) ) returns 2 Is possible to reprogram the PART function that groups of two terms in a sum? as the ti68k hpprime part( quote( 1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 ) ) RETURNS 10 part( quote( 1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 ), 2 ) RETURNS 1/2 TI89 part( quote( 1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 ) ) => part(quote( (1/1) + (1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10) )) RETURNS 2 part( quote( 1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 ), 1 ) RETURNS 1/1 part( quote( 1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 ) , 2 ) RETURNS (1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10) Thanks 

07042016, 11:00 AM
Post: #2




RE: [CAS] PART FUNCTION on sum of n terms
In short: no.
It's much better to have all arguments of + or * at the same level with a nary operator than to embedd some of them sometimes very deeply if + or * are binary, it reflects much better the structure of the expression (for example you can exchange two arguments easily). 

07092016, 02:10 AM
(This post was last modified: 03022018 01:48 PM by compsystems.)
Post: #3




RE: [CAS] PART FUNCTION on sum of n terms
HP48 to HP50 also grouped the terms of addition and multiplication by twos
PHP Code: « 0 0 { } > EXPRESSION XPART NPARTS OPERATOR OBJECTS 'x^36*x^2+11*x6' 1 PART @ returns 2 (parts) 'x^36*x^2+11*x6' 0 PART @ returns "" 'x^36*x^2+11*x6' 1 PART @ returns '(x^36*x^2+11*x)' 'x^36*x^2+11*x6' 2 PART @ returns 6 'x^36*x^2+11*x6' 3 PART @ returns "EXPRESSION 'x^36*x^2+11*x6' CONTAINS ONLY 2 PARTS" 'x^36*x^2+11*x6' 3 PART @ returns "EXPRESSION 'x^36*x^2+11*x6' CONTAINS ONLY 2 PARTS" 'X' 1 PART @ returns 0 (parts) 'X' OBJ>@ returns "ERROR" =( 'X^1' EVAL OBJ> @ returns"ERROR" =( 'X^1' EVAL 1 PART @ returns 0 (parts) 'X' 1 PART @ returns 1 'X' 0 PART @ returns "NEG" 'X' 1 PART @ returns 'X' e 1 PART @ returns 0 e 0 PART @ returns "e" pi 1 PART @ returns 0 pi 0 PART @ returns "pi" '1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 ' 1 PART @ returns 2 '1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 ' 0 PART @ returns "+" '1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 ' 1 PART @ '1/10 ' '1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 ' 2 PART @ '1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9' 

07092016, 08:03 AM
Post: #4




RE: [CAS] PART FUNCTION on sum of n terms
Correct. That's precisely because I knew the limitations of having binary + and * that I designed Giac with nary + and *. One of the limitation (that is perhaps not obvious on a calc) is to be able to handle sums with a very large number of arguments (for example 1 million). With binary + the last argument would be so much embedded that many symbolic operations would segfault because of stack overflow during recursion.


07092016, 10:13 AM
Post: #5




RE: [CAS] PART FUNCTION on sum of n terms
(07092016 08:03 AM)parisse Wrote: Correct. That's precisely because I knew the limitations of having binary + and * that I designed Giac with nary + and *. One of the limitation (that is perhaps not obvious on a calc) is to be able to handle sums with a very large number of arguments (for example 1 million). With binary + the last argument would be so much embedded that many symbolic operations would segfault because of stack overflow during recursion. I agree. Symbolics in newRPL also have nary + and * (there's no CAS yet, but the expression format and compiler/decompiler is finished). Much easier to scan for terms or factors in a flattened tree than a binary tree. 

« Next Oldest  Next Newest »

User(s) browsing this thread: