## Revision 8cc55e2c doc/integer_division.org

View differences:

doc/integer_division.org
26 26

27 27
```* From C to Euclidian
```
28 28

29
```a mod_M b = (a mod_C b) + (a < 0 ? abs(b) : 0)
```
29
```a mod_M b = (a mod_C b) + (a mod_C b < 0 ? abs(b) : 0)
```
30 30

31 31
```a div_M b = (a - (a mod_M b)) div_C b
```
32
```          = (a - ((a mod_C b) + (a < 0 ? abs(b) : 0))) div_C b
```
32
```          = (a - ((a mod_C b) + (a mod_C b < 0 ? abs(b) : 0))) div_C b
```
33 33

34 34
```* From Euclidian to C
```
35 35

36 36
```a mod_C b = (a >= 0 ? a mod_M b : - ((-a) mod_M b))
```
37 37
```            (using math def to ensure positiveness of remainder))
```
38
```          = (a mod_M b) - (a < 0 ? abs(b) : 0)
```
38
```          = (a mod_M b) - (a mod_C < 0 ? abs(b) : 0)
```
39
```          = a mod_M b - ((a mod_M b <> 0 && a <= 0) ? abs(b) : 0)
```
39 40
```            (using the def of mod_M above)
```
40 41

41 42
```a div_C b = (a - (a mod_C b)) div_M b
```
42
```          = (a - ((a mod_M b) - (a < 0 ? abs(b) : 0))) div_M b
```
43 43
```
```
44
```Let's chosse the second, simpler, def of mod_C
```
44
```Let's choose the second, simpler, def of mod_C
```
45 45

Also available in: Unified diff