Juergen,
I'm seeing errors with the mod (∣) operator applied to Gaussian
integers again. With svn 896, the mod operator yields a nonzero
residual result while the division operator yields an exact Gaussian
integer quotient result as follows
1J3 ∣ 8J4
1J3
8J4 ÷ 1J3
2J¯2
1J3 × 2J¯2
8J4
I'm running Fedora 25, 64 bit, on an Intel Core i7-6700 4 core
CPU with 16 Gbyte memory.
The attached TGI0.apl generates many more failure examples if
needed.
Regards,
Fred
#!/usr/local/bin/apl --script
⍝ Run with: ./TGI0.apl
⍝ The square root of ¯1, a pure imaginary number.
⍙J ← 0J1
⍝ CMPLX is an array function.
∇z ← m CMPLX n
z ← m + ⍙J × n
∇
⍝ NORMJ is an array function.
∇ z ← NORMJ m
z ← m × + m
∇
∇ z ← a MODTST b; r0; r1; r2
z ← 0
→ ( ( a = 0 ) ∨ z ← ( ( r1 ← NORMJ a ∣ b ) < r0 ← NORMJ a ) ) / 0
⍞ ← "a = "
⍞ ← a
⍞ ← ", b = "
⍞ ← b
⍞ ← ", ( NORMJ a ∣ b = "
⍞ ← r1
⍞ ← " ) ≥ ( NORMJ a = "
⍞ ← r0
⍞ ← " )"
⎕ ← " "
⍞ ← "r2 = b ÷ a = "
⍞ ← r2 ← b ÷ a
⍞ ← ", b = r2 × a ="
⍞ ← r2 × a
⎕ ← " "
∇
cnt ← 21
bgn ← ¯1 - cnt2 ← ⌊ cnt ÷ 2
a ← b ← ints ← bgn + ⍳ cnt
alpha ← ⊖ ⍉ a ∘.CMPLX b
⎕ ← " "
foo ← alpha ∘.MODTST alpha
⍝ rhp ← ⍉ ( ⍳ cnt2 ) ∘.CMPLX ( bgn + ⍳ cnt )
⍝ foo ← rhp ∘.MODTST rhp