⎕pw ← 195 ⍝ The square root of ¯1, a pure imaginary number. ⍙J ← 0J1 ⍝ CMPLX is an array function. ∇ z ← m CMPLX n z ← m + ⍙J × n ∇ ⍝ CMPLX0 is a scalar function. ∇ z ← CMPLX0 a; m; n ( m n ) ← a z ← m + ⍙J × n ∇ ⍝ Euclidean division algorithm for Gaussian integers. ⍝ DIVJ is a scalar function. ∇ z ← a DIVJ b; q; r → ( b ≠ 0J0 ) / L0 z ← 0 a → 0 L0: r ← a - b × q ← CMPLX0 ⌊ ( 9 11 ) ○ a ÷ b z ← q , r ∇ ⍝ Modulo function for Gaussian integers. A test replacement for current ⍝ gnu-apl ∣ function applied to Gaussian integers. ⍝ MODJ is a scalar function. ∇ z ← a MODJ b z ← ↑ ¯1 ↑ b DIVJ a ∇ ∇ z ← NORMJ m z ← m × + m ∇ ∇ z ← SUE v z ← ( ( v ⍳ v ) = ⍳ ⍴ v ) / v ∇ ∇ z ← CRSOTST alpha; crsed; crsedu; ordedu; crsbi; crsbiu; ordbiu; nrm z ← 0 → ( 0 = alpha ) / 0 ordedu ← ⍴ crsedu ← SUE crsed ← , alpha MODJ ¨ betav nrm ← NORMJ alpha → ( z ← ordedu = nrm ) / 0 ⍞ ← "modulo basis = " ⍞ ← alpha ⍞ ← " basis norm = " ⍞ ← nrm ⍞ ← " residue count = " ⍞ ← orded "" ∇ bgn ← ¯16 rng ← 31 dmn ← bgn + ⍳ rng betav ← , beta ← dmn ∘.+ 0J1 × dmn " " rng rng ⍴ CRSOTST ¨ betav