eo-phi-normalizer-3.0.0: data/0.49.3/org/eolang/i16.phi
{⟦
org ↦ ⟦
eolang ↦ ⟦
i16(as-bytes) ↦ ⟦
φ ↦ ξ.as-bytes,
as-i16 ↦ ξ,
neg ↦ ξ.times(-1.as-i64.as-i32.as-i16),
as-i64 ↦ ξ.as-i32.as-i64,
as-number ↦ ξ.as-i64.as-number,
as-i32 ↦ ⟦
λ ⤍ Lorg_eolang_i16_as_i32
⟧,
lt(x) ↦ ⟦
φ ↦ ξ.ρ.as-i32.lt(ξ.x.as-i16.as-i32)
⟧,
lte(x) ↦ ⟦
φ ↦ ξ.ρ.as-i32.lte(ξ.x.as-i16.as-i32)
⟧,
gt(x) ↦ ⟦
φ ↦ ξ.ρ.as-i32.gt(ξ.x.as-i16.as-i32)
⟧,
gte(x) ↦ ⟦
φ ↦ ξ.ρ.as-i32.gte(ξ.x.as-i16.as-i32)
⟧,
times(x) ↦ ⟦
bts ↦ ξ.ρ.as-i32.times(ξ.x.as-i16.as-i32).as-bytes,
left ↦ ξ.bts.slice(0, 2),
right ↦ ξ.bts.slice(2, 2),
φ ↦ ξ.left.eq(Φ̇.bytes(⟦ Δ ⤍ 00-00 ⟧)).or(
ξ.left.eq(Φ̇.bytes(⟦ Δ ⤍ FF-FF ⟧))
).if(ξ.ρ.ρ.i16(ξ.right), ξ.ρ.ρ.i16(ξ.left).plus(ξ.ρ.ρ.i16(ξ.right)))
⟧,
plus(x) ↦ ⟦
bts ↦ ξ.ρ.as-i32.plus(ξ.x.as-i16.as-i32).as-bytes,
left ↦ ξ.bts.slice(0, 2),
right ↦ ξ.bts.slice(2, 2),
φ ↦ ξ.left.eq(Φ̇.bytes(⟦ Δ ⤍ 00-00 ⟧)).or(
ξ.left.eq(Φ̇.bytes(⟦ Δ ⤍ FF-FF ⟧))
).if(ξ.ρ.ρ.i16(ξ.right), ξ.ρ.ρ.i16(ξ.left).plus(ξ.ρ.ρ.i16(ξ.right)))
⟧,
minus(x) ↦ ⟦
φ ↦ ξ.ρ.plus(ξ.x.as-i16.neg)
⟧,
div(x) ↦ ⟦
x-as-i16 ↦ ξ.x.as-i16,
bts ↦ ξ.ρ.as-i32.div(ξ.x-as-i16.as-i32).as-bytes,
left ↦ ξ.bts.slice(0, 2),
right ↦ ξ.bts.slice(2, 2),
zero ↦ Φ̇.bytes(⟦ Δ ⤍ 00-00 ⟧),
φ ↦ ξ.x-as-i16.eq(ξ.zero).if(
Φ̇.error(
Φ̇.txt.sprintf(
"Can't divide %d by i16 zero",
Φ̇.tuple(Φ̇.tuple.empty, ξ.ρ.as-i32.as-i64.as-number)
)
),
ξ.left.eq(ξ.zero).or(ξ.left.eq(Φ̇.bytes(⟦ Δ ⤍ FF-FF ⟧))).if(
ξ.ρ.ρ.i16(ξ.right), ξ.ρ.ρ.i16(ξ.left).plus(ξ.ρ.ρ.i16(ξ.right))
)
)
⟧
⟧,
λ ⤍ Package
⟧,
λ ⤍ Package
⟧
⟧}