RosettaCodeData/Task/Tropical-algebra-overloading/Phix/tropical-algebra-overloading.phix
2026-04-30 12:34:36 -04:00

25 lines
1 KiB
Text

with javascript_semantics
requires("1.0.1") -- (minor/backportable bugfix rqd to handling of -inf in printf[1])
constant tropicalAdd = max,
tropicalMul = sq_add,
tropicalExp = sq_mul,
inf = 1e300*1e300
printf(1,"tropicalMul(2,-2) = %g\n",
{tropicalMul(2,-2)})
printf(1,"tropicalAdd(-0.001,-inf) = %g\n",
{tropicalAdd(-0.001,-inf)})
printf(1,"tropicalMul(0,-inf) = %g\n",
{tropicalMul(0,-inf)})
printf(1,"tropicalAdd(1.5,-1) = %g\n",
{tropicalAdd(1.5,-1)})
printf(1,"tropicalMul(-0.5,0) = %g\n",
{tropicalMul(-0.5,0)})
printf(1,"tropicalExp(5,7) = %g\n",
{tropicalExp(5,7)})
printf(1,"tropicalMul(5,tropicalAdd(8,7)) = %g\n",
{tropicalMul(5,tropicalAdd(8,7))})
printf(1,"tropicalAdd(tropicalMul(5,8),tropicalMul(5,7)) = %g\n",
{tropicalAdd(tropicalMul(5,8),tropicalMul(5,7))})
printf(1,"tropicalMul(5,tropicalAdd(8,7)) == tropicalAdd(tropicalMul(5,8),tropicalMul(5,7)) = %t\n",
{tropicalMul(5,tropicalAdd(8,7)) == tropicalAdd(tropicalMul(5,8),tropicalMul(5,7))})