Better addin Icons
This commit is contained in:
parent
b5c692d6be
commit
768028d45f
Binary file not shown.
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 18 KiB |
Binary file not shown.
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 32 KiB |
51
src/julia.s
51
src/julia.s
|
@ -16,61 +16,16 @@ Sinon renvoie un nombre entre 1...steps indiquant la "distance" (pour le dégrad
|
|||
@r7 Number of steps
|
||||
If c is in the set, returns 0. Otherwise, returns the remaining number of
|
||||
iterations to be checked before the process finised. */
|
||||
|
||||
_julia:
|
||||
mov.l r8, @-r15
|
||||
mov.l r9, @-r15
|
||||
mov.l r10, @-r15
|
||||
mov.l r11, @-r15
|
||||
|
||||
/* Start with z=z²=0 (z=x+iy) */
|
||||
mov r8, r0
|
||||
mov r9, r1
|
||||
mov #0, r2
|
||||
mov #0, r3
|
||||
|
||||
.loop:
|
||||
/* Start xy */
|
||||
dmuls.l r0, r1
|
||||
|
||||
/* Update x = x²-y²+cr */
|
||||
mov r2, r0
|
||||
sub r3, r0
|
||||
add r4, r0
|
||||
|
||||
/* Get y = 2xy+ci while starting x²
|
||||
TODO: Hope there's no overflow in that [shll r1]. It might be
|
||||
TODO: provable because 2xy overflowing probably implies a lower
|
||||
TODO: bound on x²+y² at the previous iteration. */
|
||||
sts mach, r10
|
||||
sts macl, r1
|
||||
dmuls.l r0, r0
|
||||
xtrct r10, r1
|
||||
shll r1
|
||||
add r5, r1
|
||||
|
||||
/* Get x² and keep the integer part at full precision for ∥z∥²; at the
|
||||
same time, start y² */
|
||||
sts mach, r10
|
||||
sts macl, r2
|
||||
dmuls.l r1, r1
|
||||
xtrct r10, r2
|
||||
|
||||
/* Get y² and compute ∥z∥² = x²+y² in 32:0 format */
|
||||
sts mach, r11
|
||||
sts macl, r3
|
||||
add r11, r10
|
||||
xtrct r11, r3
|
||||
|
||||
/* Compare ∥z∥² to t², return if the threshold is reached */
|
||||
cmp/ge r6, r10
|
||||
bt .end
|
||||
|
||||
/* Continue looping */
|
||||
dt r7
|
||||
bf .loop
|
||||
|
||||
.end:
|
||||
mov.l @r15+, r11
|
||||
mov.l @r15+, r10
|
||||
|
||||
rts
|
||||
mov r7, r0
|
||||
nop
|
Loading…
Reference in New Issue