00:21 -!- szymon(n=szymon@bzo253.neoplus.adsl.tpnet.pl) has joined #maxima 02:31 -!- Prax01D(n=Prax01D@tor58-23b-95-33.dynamic.rogerstelecom.net) has joined #maxima 06:35 -!- stw__(n=stw@e176155022.adsl.alicedsl.de) has joined #maxima 08:12 HaraldG_log: no, not that i can tell 08:13 HaraldG_log: e.g. if i do something like: fp:ev(diff(f,x)) then the value in fp is "ev(diff(f,x))", not the derivative of f with respect to x 08:27 at least as near as i can tell 08:27 or i'm on crack, who knows 08:37 -!- Prax01D(n=Prax01D@tor58-5-76-74.dynamic.rogerstelecom.net) has joined #maxima 08:47 -!- cunzhang(n=apzc2529@218.7.43.195) has joined #maxima 12:36 is there a way to put maxima in "double" mode, whereby all math is performed with double precision arithmetic instead of big numbers? 12:37 for doing numerical analysis 12:41 -!- cunzhang(n=apzc2529@218.7.43.195) has joined #maxima 12:43 note that using float() on my answer isn't enough -- every step of the process must use double precision, so if i do at(x^3+x,[x=1/8]) then every step in the evaluation of that formula must be done with double-presicion floating point arithmetic 12:46 will the float evflag do this, or does that again just affect the final answer? 12:46 obviously, float(float(x)^3)+float(x) would do the right thing but isn't really... well, who wants to do that to a tenth order polynomial 14:07 -!- HaraldG(n=rldprog@g4v1.g4.wien.funkfeuer.at) has joined #maxima 14:11 SerajewelKS: evflags only work inside ev() AFAIK, but there ist the numer flag. Perhaps numer:true; does what you want. 14:11 Also note that if any operand is a float, then the operation should return a float too. 14:12 1/4+0.1 -> 0.35 thus it shouldn't be too difficult to do all operation with floatingpoint math. 14:19 Ahh - just got what you want to do with fp. Learn about nouns and verbs. (And give me a few minutes to think about the problem ....) 14:23 numer seems to do the trick, i've been playing with it for a while 14:23 i calculated macheps: the machine epsilon 14:23 is(ev(1+macheps/2-1,numer) = float(0)) 14:24 is true over here, where using macheps (not macheps/2) is false 14:24 interestingly, 0 # float(0) but 0 < float(1) 14:25 apparently = and # always return false when comparing real to floating-point, but the other relational operators work just fine 14:27 I think this is intentional because 0 means exactly zero while 0.0 is only an approximation. 14:27 There are some bugs though... 14:28 well as long as i specify 0.0 it works as expected 14:28 when calculating the machine epsilon i want to compare to the approximation specifically anyway 14:28 so i have: macheps: block([eps: 1], while is(float(1 + eps) # 1.0) do eps: eps / 2, eps * 2); 14:35 -!- Prax01D(n=Prax01D@tor58-7-82-55.dynamic.rogerstelecom.net) has joined #maxima 14:38 is there a way to declare a function local to a block? 14:39 or is that a lambda or whatever 14:40 yup that seems to work 14:41 To come back to your problem with fp: 14:42 This wont work because symbols (like fp) are always evaluated once. 14:42 actually i think i figured that part out 14:42 (Unless you use ev or some other tricky function) 14:42 my issue was that i was defining a function and i wanted to store in the function the result of the right-hand side 14:42 But if you really insist on your notation you can to the following trick: 14:43 fp() := ev(diff(f(x), x), nouns); 14:43 nofix(fp); 14:44 i just did fp: diff(f, x) 14:44 and i use at(f,[x=...]) 14:44 fp rather 14:47 i'm not sure how efficient that is but it works 14:50 Never did it that way before, but it seems to work. So all you want to do is get the numerical value ot the derivative at some point? 14:50 right, or more specifically, at multiple points, without finding the derivative each time 14:51 let me pastebin an example 14:51 I think I got it. 14:51 http://pastebin.ca/916254 14:52 this is my implementation of newton's root-finding method after about 40 hours of hacking with maxima :) 14:52 (not 40 hours of hacking *this* function, but with 40 hours of experience) 14:52 ugh, i ev(..., numer) twice 14:53 ok pretend line five is just g:xf(g) 14:56 Didn't try it, but I think with block([numer:true, ... you should get rid of ev() entirely? 14:56 hmm 14:57 cool 14:59 yep, seems to work 15:00 -!- szymon(n=szymon@cbo220.neoplus.adsl.tpnet.pl) has joined #maxima 15:02 this stuff has a really steep learning curve but is nice when you get into it 15:03 and aren't royally frustrated by simple crap 15:48 -!- cunzhang(n=apzc2529@218.7.43.195) has joined #maxima 15:58 -!- cunzhang(n=apzc2529@218.7.43.195) has left #maxima 16:13 -!- eggauah(n=daniel@20845108.cps.virtua.com.br) has joined #maxima 17:11 -!- stw(n=PC_40@195.80.220.100) has joined #maxima 18:39 -!- stw(n=PC_40@195.80.220.100) has left #maxima 20:36 -!- Prax01D(n=Prax01D@tor58-5-77-38.dynamic.rogerstelecom.net) has joined #maxima 21:09 -!- magni_(n=magni@ip68-14-27-175.ri.ri.cox.net) has joined #maxima 21:10 anyone here using imaxima on OS X? 23:31 -!- szymon(n=szymon@cbo220.neoplus.adsl.tpnet.pl) has joined #maxima