It seems that if my formula uses a static class function, it's rendered only on 1 CPU using "Render to Disk" when at arbitrary precision depth. If I write the formula inline it works fine.

It seems that if my formula uses a static class function, it's rendered only on 1 CPU using "Render to Disk" when at arbitrary precision depth. If I write the formula inline it works fine.
 
0
reply

There are no special rules for static functions: it depends on from where you call them. Can you share an example?

There are no special rules for static functions: it depends on from where you call them. Can you share an example?

Ultra Fractal author

 
0
reply
class Test {
  static complex func f(complex z, complex c)
    return z^3/(z+.3) + c
  endfunc
}

Testbrot {
init:
  z =  0
loop:
   ;z = z^3/(z+.3) + #pixel
   z = Test.f(z,#pixel)
bailout:
  |z| <= @bailout
default:
  title = "TestBrot"
  center = (0, 0)
  float param bailout
    caption = "Bailout value"
    default = 1e16
  endparam
}
Fractal1 {
fractal:
  title="Fractal1" width=800 height=600 layers=1
  credits="user;6/17/2018" antialiasing=yes
layer:
  caption="Background" opacity=100
mapping:
  center=-1.1116464547149054924890175/0.4896797411711562585172589
  magn=1.9321599E16
formula:
  maxiter=19811 adjust=yes filename="Test.ufm" entry="Testbrot"
  p_bailout=1e16
inside:
  transfer=none
outside:
  transfer=linear filename="Standard.ucl" entry="Basic"
  p_type=Iteration
gradient:
  smooth=yes rotation=-63 index=0 color=13331232 index=104
  color=16777197 index=193 color=43775 index=279 color=512 index=-64
  color=6555392
opacity:
  smooth=no index=0 opacity=255
}
```` class Test { static complex func f(complex z, complex c) return z^3/(z+.3) + c endfunc } Testbrot { init: z = 0 loop: ;z = z^3/(z+.3) + #pixel z = Test.f(z,#pixel) bailout: |z| &lt;= @bailout default: title = &quot;TestBrot&quot; center = (0, 0) float param bailout caption = &quot;Bailout value&quot; default = 1e16 endparam } ```` ```` Fractal1 { fractal: title=&quot;Fractal1&quot; width=800 height=600 layers=1 credits=&quot;user;6/17/2018&quot; antialiasing=yes layer: caption=&quot;Background&quot; opacity=100 mapping: center=-1.1116464547149054924890175/0.4896797411711562585172589 magn=1.9321599E16 formula: maxiter=19811 adjust=yes filename=&quot;Test.ufm&quot; entry=&quot;Testbrot&quot; p_bailout=1e16 inside: transfer=none outside: transfer=linear filename=&quot;Standard.ucl&quot; entry=&quot;Basic&quot; p_type=Iteration gradient: smooth=yes rotation=-63 index=0 color=13331232 index=104 color=16777197 index=193 color=43775 index=279 color=512 index=-64 color=6555392 opacity: smooth=no index=0 opacity=255 } ````
 
0
reply

Thanks for the clear example, I could easily reproduce it myself. It's a side-effect of how parameters are passed in arbitrary precision mode, which causes the different threads to wait for each other all the time. I'll try to fix it for a 6.02 update.

Thanks for the clear example, I could easily reproduce it myself. It&#039;s a side-effect of how parameters are passed in arbitrary precision mode, which causes the different threads to wait for each other all the time. I&#039;ll try to fix it for a 6.02 update.

Ultra Fractal author

 
0
reply
131
views
3
replies
2
followers
live preview
Enter at least 10 characters.
WARNING: You mentioned %MENTIONS%, but they cannot see this message and will not be notified
Saving...
Saved
All posts under this topic will be deleted ?
Pending draft ... Click to resume editing
Discard draft