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.
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. |
| |
| 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. |
|
|