NB. C.Reiter FVJ4 require 'viewmat plot trig numeric' NB. Sierpinski by C.Reiter Y=: 3&#. ^:_1 i.243 DAT=: Y +./ . *. |: Y COL=:255 255 0,0 0 255,:192 128 0 NB. Usage: * COL viewmat DAT NB. ---------------------------- NB. Contour require '~addons/graphics/fvj4/raster.ijs' f1=: +&sin "0 f2=: sin@(+&.*:) NB. sin sqrt(x^2 + y^2) f3=: (f1+f2)"0 f. NB. -------------- clean=: * * | cile=: ($@]) $ ((/:@/:@] <.@: *(%#)),) b0=: 1 : 'u/~4p1*(i.%<:) 200' NB. viewmat 256 cile f1 b0 NB. Usage: *viewmat B g256=: 3#"0 i.256 NB. g256 viewmat B NB. black&white 256 graduation NB. Usage: *viewmat b NB. --------------------------- randunif=: (?%<:)@:($&2147483647) : ({.@[ + ({:-{.)@[*$:@]) randsn=: cos@+:@o.@randunif * %:@-@^.@randunif interp=: (}. + }:)@:(2:#-:) osz=: %:@-.@(2&^)@+:@<:@[ sz=: osz * %@+:@<:@#@] ^ [ randadd=: ] + sz * randsn@$@] interp2=: interp ("1)@:interp plasma=: 4 : 0 x (randadd interp2@])^:y (x osz 1) * randsn 2 2 ) NB. Usage: * viewmat 256 cile 0.1 plasma 9 f4=: +: NB. -Julia-------------------- f=: +&_0.2j0.8@*: f5=: +&_0.2j0.8@*: NB. square -> add _0.2j0.8 f6=: +&_0.2j0.6@*: NB. square -> add _0.2j0.8 f7=: +&_0.2j0.8@(^&3) NB. (fine!) triple -> add _0.2j0.8 f8=: +&_0.4j0.6@*: NB. fine square -> add _0.2j0.8 NB. direct formula NB. viewmat ((+&_0.678j0.312@*:) julia0 4 100) fjx _1.5 512 fj0=: 3 : '+&y@*:' fjx=: 3 : '|.|: j./ ~ ({. y)+3*(i.%<:) {: y' NB. jullia fx(make canvas) esc0=: 1 : 0 NB. for test NB. f4 esc 0.3 1 // OK (,u@{:)^:(<&3@# *. <&10@:(+/)@:|@:{:)^:_ ,: y ) NB. Hue1 is from fvj4/pvokit.ijs NB.* hue1 v function to create hues on 0-1 scale NB. ------------------------------------------------ NB.* pwlin v Piecewise linear utility pwlin=: 3 : 0 : p=.>{.x c=.>{:x i=.i.&0 p(u escapet n) L:0 {@> y' julia=: 2 : '>(u escapet 4 256) L:0 {@> fjx _1.5 512' NB. Usage: viewmat (+&_0.678j0.312@*:) julia '' NB. Usage: (f5 julia0 4 100) fjx _1.5 512 NB. fjx n1 n2 is position NB. ---mandelbrot---old------------------ mandel0 3 : 'y &+@*: escapet(10 255) 0' mandel1=: 3 : 'y &+(^&3) escapet(10 255) 0' mandelt0=: 3 : '> mandel0 L:0 {@> y' mandelt1=: 3 : '> mandel1 L:0 {@> y' NB. new fvj3 new mandelt=: (3 : 'y&+@*: escapetc (10 255) 0')"0 mandelt2=: (3 : 'y&+@(^&3) escapetc (10 255) 0')"0 NB. z^3 NB. Usage: viewmat mandelt 500 z1_cccr _0.2j0.8 2j0.8 NB. usage: viewmat mandelt fmx _2j_1.5 256 both OK mandelt5=: (3 : 'y&-@(^&5) escapetc (10 255) 0')"0 NB. z^5 OK NB. mandelbrot fx fmx=: 3 : ' ({. y) + 3*|.|: j./~ (i.%<:) {: y' NB. viewmat mandelt fmx _2j_1.5 256 OK NB. fx (x=)_2j_1.5 (n=)5/15/256 NB. (mjn) position parameter NB. m is left<-->right n is up/down NB. _2j_1.5 is position <-- center NB. 3* is scale 3 is just!! NB. --------------------newton ---------------------- NB. f=: _2 0 0 0 0 1&p. NB. f= _2 + x^5 new_1=: 1 : ' ] - x % x D.1' (^:_)("0) new_0=: 1 : ' ] - x % x D.1' new_2=: 1 : ' ] - u % u D.1' (^:_)("0) NB. below is C. Reiter newton=: (, new_0 @{: )^:({: -.@e. }: )^:_ newton_sb=: (# , {:)@:newton "0 f. NB. ----------------- zclean=: (* * |)&. +. NB. newt=: new_0 :: -: test=: 100&> # *. 1e6&>|@{: *. -.@e. }: NB. newton=: (zclean@new_0@{:) ^: test^:_