From 880370c5e6ab13605358e0c4632b3d367d9a46c1 Mon Sep 17 00:00:00 2001 From: joachimschmidt557 Date: Sat, 9 Feb 2019 22:01:17 +0100 Subject: [PATCH] Add Julia module --- Julia.fs | 26 ++++++++++++++++++ bin/Debug/netcoreapp2.2/fsharp-mandelbrot.dll | Bin 10240 -> 11264 bytes bin/Debug/netcoreapp2.2/fsharp-mandelbrot.pdb | Bin 1628 -> 1968 bytes fsharp-mandelbrot.fsproj | 1 + obj/Debug/netcoreapp2.2/fsharp-mandelbrot.dll | Bin 10240 -> 11264 bytes obj/Debug/netcoreapp2.2/fsharp-mandelbrot.pdb | Bin 1628 -> 1968 bytes obj/fsac.cache | 4 +-- 7 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 Julia.fs diff --git a/Julia.fs b/Julia.fs new file mode 100644 index 0000000..43e8ef1 --- /dev/null +++ b/Julia.fs @@ -0,0 +1,26 @@ +module Julia + +open System +open System.Numerics +open System.Drawing + +let generatePixel x y height width zoom rMax maxIter = + let c = MandelBrot.getComplexValueForPixel (float x) (float y) (float height) (float width) zoom + + let rec findI i z = + if i >= maxIter then i + else if Complex.Abs(z) >= (float rMax) then i + //else findI (i+1) (z*z+c) + else findI (i+1) (Complex.Add(c, (Complex.Multiply(z, z)))) + + MandelBrot.colorMap (findI 0 (Complex(0.0, 0.0))) maxIter + +let generate (width:int) height zoom rMax maxIter = + let result = new Bitmap(width, height) + + for y in 0 .. height-1 do + for x in 0 .. width-1 do + generatePixel x y height width zoom rMax maxIter + |> (fun color -> result.SetPixel(x, y, color)) + + result \ No newline at end of file diff --git a/bin/Debug/netcoreapp2.2/fsharp-mandelbrot.dll b/bin/Debug/netcoreapp2.2/fsharp-mandelbrot.dll index ee165edf15227492b43753d76663eb3e7ecbd270..8a543575d6b3ed8755ffbd16c2690dca18a571f6 100644 GIT binary patch delta 4342 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 delta 3437 zcmZpOXb70lp_Gyv8^Ztv4;c6uxfwYa7?cb}eGU^>g|X^5FfhbVHe{6HX<%UB zVPIgG;=sTlGx?&L&g4i&b*>&o1_lNN1_lPD$z6=vj4G42F{(4FO}@vdq?X|TF~1%hlesb*0|OfuTahFKLqR?-0|S?s76Su= zumK0d4@L$CHUGaoD>$bv4UAvAdd zs~W!u0|S>9gRlWBgC_$61N-EstnS)O3=C`#Ti6*K85kJ27#IYZa+q^ia#(ZtSTvYH zF5+Y5V`D4koV=e&QUzp&1``8=HXoY?3tTTJLl^@%Xat#~?^z#sr(yN7zZFfcIe;GTSrT~Cygfq{V;;yDIc1_lN>1_lPP$$}i>^`LkLVNi5{ zA_Wx8WeoWYTnx_{E;4X2h%sJd;Ah}uWMJT9uwc|+l)%Ks z&YJGMgozL5iUkEW4HEB7+>5&Bjp08pW!_ zFqPGedGap~oB9(BAfGTYurshK3V=Mvz{SAGz{$|S$iNW6IE8_gfrWt^%$v@b!ieDA zV_X8|u`%egiZik?n1IRCtQ!~uKxv#oj6sIw9Rnl794K!YixVRg!vavIVGv`u!II6$ z%5b6{%4K7n!N|p+08Wo$42rDZ8F?5Apu9j#L>6QY zBUpq9q`sbknc*~88^p4EtcDEgOi~P%4C+iq431#Z6HEqz$w)An2qrVZWFeTWWKd^X z&L9J3uVnbde2HNvgE)&3!$Ag6c%5WWXZp)> zxXkc_L4gs(R$v6N_cOd?;9(SD6lc_DoW!_+aSP)!Mhzw_CN2g+hQkbp7+D%XkphZa z1_p)(5d9HUBrq_6OG$>w#=MfEUqHePEDVegF>vfVOitt#wrv9CYX%mWYOu^fxENR) zSge@^#D-*b5Q~9f8-wfQjl9CTn^+-yh%3Yy7#IY2AZ%L(Pz19uuraVONHRQO&}Miv z`77^{$xi$tVZNEkMft_~X(f7Y!5N7~1$xf;MX3xBwp(dla)J?*1CdC}%uDffFf)e= zf>jtZ_!pF9=4Mu{#Ec$LeFO;m`JiGzbfR7jAS zLr`>bsL1DBcBmi|8!rZ2ylQ1b_Qm_ zLS9~8Rs}{zSq>3KaET2nlVO;FfmMNtk(ZZ~fmKixq=Q$6k%4vcdQtIu1_oAkW?o)i zHU=h;`2vjK3LK%4nN3iX7vd_AwSuA?>>!#$P*hxiky(xb#1V#&jB*UZ48n}eT#Ot7 z>`a29ASn(IAt=hh&A<*ao`ZvzgF^*WxI)qi`B<<}u#l616~y7?;9yZ;gsTx{WnknL6y;!G5)=hNHU%aQ4na{ap2?fU z{KdtCD~n4~bM=Bs^GY&vQ}z5xb5n~llPCWdlVD+EVDs8+B3{hQ!{wWpmy(*}RFq$$ zJ2_BFVRF2*3?I8oQDS*!UOKBYC;?2amX?!bPs_GX!AwV1W+r`CPDUl6km^34pA;HTA%b!ph#Ajk)VPsHdPyrPPjFS`P#U^i)&tn#3WSYEC zUXoOTZ-qGb00|p$qmd4~ z1iK_71EaAHyAr!Hs5QaJD9FITWWvCxW6EMG4JMeG7=;+wSnyGdYz_4g^H~`g7%g;6 zWlUum85k{fOyx}F85tO@bW9aY)fgEVt#wS*O?4O<7;SV+bxjT7HZt2XFzQ&aSnz-e zW=2M4Mn<@snHU)u?Q|@7E%+E280~c|_$`Ft8d)3|7;>z=Br_vB7=iS|9E@rh zJJ^BtLiWO72il9+i-H|!FJ>j;4&T5ID#pMut8~s2~@FrFt{^{Fe);#PF^T4GWmfryCz5qgkc&$Y!C*U4{{Kw zHO;`lFk!NwiWCPo8>AAL9H3$0;B68x{qpa4+=F69}013)!q8Uq8v1_uU) z4N43QLBTG;l|^b{QSX0yZ+5?KQ4p|fKFFoeoUgU{klK4DP6u#jfMJ5c=8J0I7y;}< B4i*3a diff --git a/bin/Debug/netcoreapp2.2/fsharp-mandelbrot.pdb b/bin/Debug/netcoreapp2.2/fsharp-mandelbrot.pdb index c60b76e0bcf0d4e8486f750cee6ae1eec2e69b34..d1fa22febc8c8ef1c3803371446fff53484db5cd 100644 GIT binary patch delta 1040 zcmcb^vw?qtN%R_K1_tFi28I?E1_m1j1_tHelA_GK^kN1E28IJH3=AwFvCv?KBP
  • <8iNS|~ks+9YiJ^#rk)e`-iGh)!i-Cz@F#{9BR*+K}m>BLdFf;sMU}jKfVrI}| zVrGb9VrIwznajY;Fa=7lpKQ*kTki<95G2UYz`$Sx<%8@NU|?V{1UZHQ;&+hYVMu&- z1_lOyD4!MTcpoSqY$zY( zkUb3b3=F@Z7J{PX7y|>t2PhvD8s``o7+yg6pwPI>z`$@5$`@o{V0h2Kz;GPO2lq70-*0;(PqWiUP{#6VF7;!83xFyw+P0>v3fK#GBZ z0ptr%oPqeD#0iTtP;i2x3S=h85KwT!_@IOg3QiawM1w*TM1$0WJOQHBCO0x`Y&K+; zVl?CMD$U7E)JrR7(`R60<8v06sIkJWS>&Z)%S)XanXP=zyuOKfDXBS5MfoLgRVkAb zShS=CFM<P3=B353=GP_B}JKe>BS5T3=B`085meVVxhqdFPIq^ z6hLhEP)`>I1_llm28IxjUZECU0B90LP`7y|C;Kz% z*8gCH8qC1Jz{012aYi?FnoaWL7qOxz);Wd0xAIV&|L-whMQ16Hv7D7Q_dIqA^sSj{y=nnovGJ0|SFSLp>zeLB0`y z8t4cO2@oHo$Oy_8WME(bi5W65Fo1k31XUk~#0UA>AIcYo`q~G|7hzyv0O_%S@U4T9BC_HU~5ffcT*F017UcybLt0!1(qcMWB$_%*i6hD9Y=bn3s~8<5ZMi zqL)_8rq960#^*damQ{ + diff --git a/obj/Debug/netcoreapp2.2/fsharp-mandelbrot.dll b/obj/Debug/netcoreapp2.2/fsharp-mandelbrot.dll index ee165edf15227492b43753d76663eb3e7ecbd270..8a543575d6b3ed8755ffbd16c2690dca18a571f6 100644 GIT binary patch delta 4342 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 delta 3437 zcmZpOXb70lp_Gyv8^Ztv4;c6uxfwYa7?cb}eGU^>g|X^5FfhbVHe{6HX<%UB zVPIgG;=sTlGx?&L&g4i&b*>&o1_lNN1_lPD$z6=vj4G42F{(4FO}@vdq?X|TF~1%hlesb*0|OfuTahFKLqR?-0|S?s76Su= zumK0d4@L$CHUGaoD>$bv4UAvAdd zs~W!u0|S>9gRlWBgC_$61N-EstnS)O3=C`#Ti6*K85kJ27#IYZa+q^ia#(ZtSTvYH zF5+Y5V`D4koV=e&QUzp&1``8=HXoY?3tTTJLl^@%Xat#~?^z#sr(yN7zZFfcIe;GTSrT~Cygfq{V;;yDIc1_lN>1_lPP$$}i>^`LkLVNi5{ zA_Wx8WeoWYTnx_{E;4X2h%sJd;Ah}uWMJT9uwc|+l)%Ks z&YJGMgozL5iUkEW4HEB7+>5&Bjp08pW!_ zFqPGedGap~oB9(BAfGTYurshK3V=Mvz{SAGz{$|S$iNW6IE8_gfrWt^%$v@b!ieDA zV_X8|u`%egiZik?n1IRCtQ!~uKxv#oj6sIw9Rnl794K!YixVRg!vavIVGv`u!II6$ z%5b6{%4K7n!N|p+08Wo$42rDZ8F?5Apu9j#L>6QY zBUpq9q`sbknc*~88^p4EtcDEgOi~P%4C+iq431#Z6HEqz$w)An2qrVZWFeTWWKd^X z&L9J3uVnbde2HNvgE)&3!$Ag6c%5WWXZp)> zxXkc_L4gs(R$v6N_cOd?;9(SD6lc_DoW!_+aSP)!Mhzw_CN2g+hQkbp7+D%XkphZa z1_p)(5d9HUBrq_6OG$>w#=MfEUqHePEDVegF>vfVOitt#wrv9CYX%mWYOu^fxENR) zSge@^#D-*b5Q~9f8-wfQjl9CTn^+-yh%3Yy7#IY2AZ%L(Pz19uuraVONHRQO&}Miv z`77^{$xi$tVZNEkMft_~X(f7Y!5N7~1$xf;MX3xBwp(dla)J?*1CdC}%uDffFf)e= zf>jtZ_!pF9=4Mu{#Ec$LeFO;m`JiGzbfR7jAS zLr`>bsL1DBcBmi|8!rZ2ylQ1b_Qm_ zLS9~8Rs}{zSq>3KaET2nlVO;FfmMNtk(ZZ~fmKixq=Q$6k%4vcdQtIu1_oAkW?o)i zHU=h;`2vjK3LK%4nN3iX7vd_AwSuA?>>!#$P*hxiky(xb#1V#&jB*UZ48n}eT#Ot7 z>`a29ASn(IAt=hh&A<*ao`ZvzgF^*WxI)qi`B<<}u#l616~y7?;9yZ;gsTx{WnknL6y;!G5)=hNHU%aQ4na{ap2?fU z{KdtCD~n4~bM=Bs^GY&vQ}z5xb5n~llPCWdlVD+EVDs8+B3{hQ!{wWpmy(*}RFq$$ zJ2_BFVRF2*3?I8oQDS*!UOKBYC;?2amX?!bPs_GX!AwV1W+r`CPDUl6km^34pA;HTA%b!ph#Ajk)VPsHdPyrPPjFS`P#U^i)&tn#3WSYEC zUXoOTZ-qGb00|p$qmd4~ z1iK_71EaAHyAr!Hs5QaJD9FITWWvCxW6EMG4JMeG7=;+wSnyGdYz_4g^H~`g7%g;6 zWlUum85k{fOyx}F85tO@bW9aY)fgEVt#wS*O?4O<7;SV+bxjT7HZt2XFzQ&aSnz-e zW=2M4Mn<@snHU)u?Q|@7E%+E280~c|_$`Ft8d)3|7;>z=Br_vB7=iS|9E@rh zJJ^BtLiWO72il9+i-H|!FJ>j;4&T5ID#pMut8~s2~@FrFt{^{Fe);#PF^T4GWmfryCz5qgkc&$Y!C*U4{{Kw zHO;`lFk!NwiWCPo8>AAL9H3$0;B68x{qpa4+=F69}013)!q8Uq8v1_uU) z4N43QLBTG;l|^b{QSX0yZ+5?KQ4p|fKFFoeoUgU{klK4DP6u#jfMJ5c=8J0I7y;}< B4i*3a diff --git a/obj/Debug/netcoreapp2.2/fsharp-mandelbrot.pdb b/obj/Debug/netcoreapp2.2/fsharp-mandelbrot.pdb index c60b76e0bcf0d4e8486f750cee6ae1eec2e69b34..d1fa22febc8c8ef1c3803371446fff53484db5cd 100644 GIT binary patch delta 1040 zcmcb^vw?qtN%R_K1_tFi28I?E1_m1j1_tHelA_GK^kN1E28IJH3=AwFvCv?KBP
  • <8iNS|~ks+9YiJ^#rk)e`-iGh)!i-Cz@F#{9BR*+K}m>BLdFf;sMU}jKfVrI}| zVrGb9VrIwznajY;Fa=7lpKQ*kTki<95G2UYz`$Sx<%8@NU|?V{1UZHQ;&+hYVMu&- z1_lOyD4!MTcpoSqY$zY( zkUb3b3=F@Z7J{PX7y|>t2PhvD8s``o7+yg6pwPI>z`$@5$`@o{V0h2Kz;GPO2lq70-*0;(PqWiUP{#6VF7;!83xFyw+P0>v3fK#GBZ z0ptr%oPqeD#0iTtP;i2x3S=h85KwT!_@IOg3QiawM1w*TM1$0WJOQHBCO0x`Y&K+; zVl?CMD$U7E)JrR7(`R60<8v06sIkJWS>&Z)%S)XanXP=zyuOKfDXBS5MfoLgRVkAb zShS=CFM<P3=B353=GP_B}JKe>BS5T3=B`085meVVxhqdFPIq^ z6hLhEP)`>I1_llm28IxjUZECU0B90LP`7y|C;Kz% z*8gCH8qC1Jz{012aYi?FnoaWL7qOxz);Wd0xAIV&|L-whMQ16Hv7D7Q_dIqA^sSj{y=nnovGJ0|SFSLp>zeLB0`y z8t4cO2@oHo$Oy_8WME(bi5W65Fo1k31XUk~#0UA>AIcYo`q~G|7hzyv0O_%S@U4T9BC_HU~5ffcT*F017UcybLt0!1(qcMWB$_%*i6hD9Y=bn3s~8<5ZMi zqL)_8rq960#^*damQ{