Better addin Icons

This commit is contained in:
Sylvain PILLOT 2023-01-18 21:13:19 +01:00
parent b5c692d6be
commit 768028d45f
3 changed files with 3 additions and 48 deletions

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

View File

@ -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