Sat Jul 11 16:42:17 MDT 1998 aquarius% mupad *----* MuPAD 1.4.0 -- Multi Processing Algebra Data Tool /| /| *----* | Copyright (c) 1997 - 98 by SciFace Software GmbH | *--|-* All rights reserved. |/ |/ *----* Licensed to: Michael Wester >> # ----------[ M u P A D ]---------- # >> # ---------- Initialization ---------- # >> TEXTWIDTH:= 80: >> read("../../Time.mupad"): >> # ---------- Numbers ---------- # >> # Let's begin by playing with numbers: infinite precision integers &> => 30414 0932017133 7804361260 8166064768 8443776415 6896051200 0000000000 # >> fact(50); 30414093201713378043612608166064768844377641568960512000000000000 Time: 110 msec Type: DOM_INT >> # => 2^47 3^22 5^12 7^8 11^4 13^3 17^2 19^2 23^2 29 31 37 41 43 47 # >> Factor(%); 47 22 12 8 4 3 2 2 2 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 Time: 510 msec Type: "_mult" >> # Double factorial => 10!! = 10*8*6*4*2 = 3840, 9!! = 9*7*5*3*1 = 945 # >> #[10!!, 9!!];# >> 3!!; 720 Time: 70 msec Type: DOM_INT >> # ABC base 16 => 2748 base 10 # >> abc; abc Time: 60 msec Type: DOM_IDENT >> # 123 base 10 => 234 base 7 # >> 123; 123 Time: 70 msec Type: DOM_INT >> # 677 base 8 => 1BF base 16 # >> 677; 677 Time: 60 msec Type: DOM_INT >> # [log base 8](32768) => 5 # >> ln(32768)/ln(8); ln(32768) --------- ln(8) Time: 220 msec Type: "_mult" >> float(%); 5.0 Time: 60 msec Type: DOM_FLOAT >> # 5^(-1) mod 7 => 3; 5^(-1) mod 6 => 5 # >> modp(5^(-1), 7); 3 Time: 60 msec Type: DOM_INT >> modp(5^(-1), 6); 5 Time: 70 msec Type: DOM_INT >> # Greatest common divisor => 74 # >> gcd(1776, 1554, 5698); 74 Time: 140 msec Type: DOM_INT >> # Infinite precision rational numbers => 4861/2520 # >> 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10; 4861/2520 Time: 70 msec Type: DOM_RAT >> # Complete decimal expansion of a rational number => 0.142857 ... # >> numlib::decimal(1/7); 0, [1, 4, 2, 8, 5, 7] Time: 200 msec Type: "_exprseq" >> # Multiply two complete decimal expansions and produce an exact result => 2 # >> numlib::decimal(7/11) * numlib::decimal(22/7); 0 Time: 90 msec Type: DOM_INT >> # This number should immediately simplify to 3^(1/3) # >> 10/7 * (1 + 29/1000)^(1/3); 2/3 1/3 1000 1029 --------------- 700 Time: 70 msec Type: "_mult" >> simplify(%); 1/3 3 Time: 2090 msec Type: "_power" >> # Simplify an expression with nested square roots => 1 + sqrt(3) # >> sqrt(2*sqrt(3) + 4); 1/2 1/2 1/2 2 (3 + 2) Time: 180 msec Type: "_mult" >> radsimp(%); 1/2 3 + 1 Time: 11690 msec Type: "_plus" >> # Try a more complicated example (from the Putnam exam) => 3 + sqrt(2) # >> sqrt(14 + 3*sqrt(3 + 2*sqrt(5 - 12*sqrt(3 - 2*sqrt(2))))); 1/2 1/2 1/2 1/2 1/2 (3 (2 (5 - 12 (3 - 2 2 ) ) + 3) + 14) Time: 260 msec Type: "_power" >> radsimp(%); 1/2 2 + 3 Time: 5450 msec Type: "_plus" >> # See D.J. Jeffrey and A.D. Rich, ``The nesting habits of radicals'', draft of &> 1998 => sqrt(2) + sqrt(3) + sqrt(5) # >> sqrt(10 + 2*sqrt(6) + 2*sqrt(10) + 2*sqrt(15)); 1/2 1/2 1/2 1/2 1/2 2 (6 + 10 + 15 + 5) Time: 260 msec Type: "_mult" >> radsimp(%); 1/2 1/2 1/2 1/2 (2 6 + 2 10 + 2 15 + 10) Time: 8970 msec Type: "_power" >> # Rationalize the denominator => 5 + 2 sqrt(6) # >> (sqrt(3) + sqrt(2))/(sqrt(3) - sqrt(2)); 1/2 1/2 2 + 3 ----------- 1/2 1/2 3 - 2 Time: 260 msec Type: "_mult" >> combine(radsimp(%), sqrt); 1/2 2 6 + 5 Time: 2800 msec Type: "_plus" >> # A factorization of 3 in the integers extended by sqrt(-5) # >> sqrt(-2 + sqrt(-5)) * sqrt(-2 - sqrt(-5)); 1/2 1/2 1/2 1/2 (- I 5 - 2) (I 5 - 2) Time: 270 msec Type: "_mult" >> radsimp(%); 3 Time: 33590 msec Type: DOM_INT >> # => 3 + sqrt(7) [Jeffrey and Rich] # >> (90 + 34*sqrt(7))^(1/3); 1/2 1/3 (34 7 + 90) Time: 280 msec Type: "_power" >> radsimp(%); 1/2 7 + 3 Time: 2260 msec Type: "_plus" >> # This is a nontrivial way of writing 12 ! # >> ((135 + 78*sqrt(3))^(2/3) + 3)*sqrt(3)/(135 + 78*sqrt(3))^(1/3); 1/2 1/2 2/3 3 ((78 3 + 135) + 3) ----------------------------- 1/2 1/3 (78 3 + 135) Time: 300 msec Type: "_mult" >> radsimp(%); 12 Time: 3000 msec Type: DOM_INT >> # See David Jeffrey, ``Current Problems in Computer Algebra Systems'', talk &> => 1 + sqrt(2) # >> (49 + 21*sqrt(2))^(1/5); 1/2 1/5 (21 2 + 49) Time: 290 msec Type: "_power" >> radsimp(%); 1/2 1/5 (21 2 + 49) Time: 2640 msec Type: "_power" >> # A nasty example generated by Axiom => [log(sqrt(2) + 1) + sqrt(2)]/3 # >> q:= ((6 - 4*sqrt(2))*ln(3 - 2*sqrt(2)) + (3 - 2*sqrt(2))*ln(17 - 12*sqrt(2)) &> + 32 - 24*sqrt(2)) / (48*sqrt(2) - 72); 1/2 1/2 1/2 1/2 1/2 (6 - 4 2 ) ln(3 - 2 2 ) - 24 2 + (3 - 2 2 ) ln(17 - 12 2 ) + 32 -------------------------------------------------------------------------- 1/2 48 2 - 72 Time: 340 msec Type: "_mult" >> radsimp(%); FAIL Time: 2370 msec Type: DOM_FAIL >> float(q); 0.7651957164 Time: 290 msec Type: DOM_FLOAT >> float((ln(sqrt(2) + 1) + sqrt(2))/3); 0.7651957164 Time: 300 msec Type: DOM_FLOAT >> q:= NIL: >> # Cardinal numbers => infinity # >> 2*infinity - 3; infinity Time: 620 msec Type: stdlib::Infinity >> # 2^aleph_0 => aleph_1 # >> 2^infinity; infinity Time: 300 msec Type: stdlib::Infinity >> # ---------- Quit ---------- # >> quit real 84.33 user 82.82 sys 1.10