Klassen CSMath
import se.lth.cs.pt.util.CSMath;

En klass med några aritmetiska operationer som saknas, eller enligt Christian får ologiska värden, i Javas standardklasser.

Observera att samtliga operationer är klassoperationer, man skapar alltså aldrig några CSMath-objekt.

Några exempel på hur mod och div skiljer sig från motsvarande java-operatorer (% och /):

Klassmetoder
int mod(int x, int y)
Beräknar x mod y enligt definitionen i 'Concrete Mathematics' av Graham, Knuth och Patashnik.

För positiva tal motsvarar mod-funktionen Javas rest-funktion (%), för negativa tal motsvarar den att man sluter tallinjen och räknar åt vänster istället.

Parametrar:
x:täljare
y:nämnare
Returnerar x mod y, ett tal i intervallet [0..y[ om y är positivt, ]y..0] om y är negativt, och x själv om y=0.
int div(int x, int y)
Ger heltalsdivision som överensstämmer med mod-funktionen, dvs en division som gör att uttrycket

n == m*CSMath.div(n,m) + CSMath.mod(n,m)

uppfylls.

Parametrar:
x:täljare
y:nämnare
Returnerar x/y, dock inte symmetrisk kring 0:an, som vanlig heltalsdivision är!
int bracket(boolean condition)
Ger Iversons 'bracket'-operation, dvs översätter ett logiskt villkor till 0 eller 1.
Parametrar:
condition:villkoret.
Returnerar 1 om villkoret är sant, 0 annars.
double arctan(double y, double x)
Beräknar arctan(y/x) och ger ett värde i det halvöppna intervallet [0..2*pi[. Om x == 0 får vi värdet pi om y > 0, och värdet 3*pi/2 om y < 0. Om både x och y är 0 får vi värdet 0.
Parametrar:
y:
x:
Returnerar ett värde i intervallet [0..2*pi[
void main(String[] args)
Ger några exempel på beräkningar med mod och div.
Parametrar:
args:Eventualla kommandoradsparametrar.