What D function or D operator does this?
IDIV EAX, r/m32
IDIV 5, 2
EAX = 2
EDX = 1
and returns (2,1) at once?
| Thread overview | |||||||
|---|---|---|---|---|---|---|---|
|
September 19, 2023 Which function returns a pair after division ? (integer,frac) | ||||
|---|---|---|---|---|
| ||||
What D function or D operator does this?
and returns (2,1) at once? | ||||
September 19, 2023 Re: Which function returns a pair after division ? (integer,frac) | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Vitaliy Fadeev | On Tuesday, 19 September 2023 at 03:44:18 UTC, Vitaliy Fadeev wrote: >What D function or D operator does this?
and returns (2,1) at once? You can either use function
| |||
September 19, 2023 Re: Which function returns a pair after division ? (integer,frac) | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Vitaliy Fadeev | There are no operators for this, not that you need one.
```d
void func(int numerator, int denominator, out int quotient, out int remainder) {
quotient = numerator / denominator;
remainder = numerator % denominator;
}
```
This will produce with ldc2 -O3:
```
void example.func(int, int, out int, out int):
mov r8, rdx
mov eax, edi
cdq
idiv esi
mov dword ptr [r8], eax
mov dword ptr [rcx], edx
ret
```
Embrace modern backends, they are amazing!
| |||
September 19, 2023 Re: Which function returns a pair after division ? (integer,frac) | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Richard (Rikki) Andrew Cattermole | On Tuesday, 19 September 2023 at 03:53:06 UTC, Richard (Rikki) Andrew Cattermole wrote:
> There are no operators for this, not that you need one.
>
> ```d
> void func(int numerator, int denominator, out int quotient, out int remainder) {
> quotient = numerator / denominator;
> remainder = numerator % denominator;
> }
> ```
>
> This will produce with ldc2 -O3:
>
> ```
> void example.func(int, int, out int, out int):
> mov r8, rdx
> mov eax, edi
> cdq
> idiv esi
> mov dword ptr [r8], eax
> mov dword ptr [rcx], edx
> ret
> ```
>
> Embrace modern backends, they are amazing!
Thanks, Rikki. Optimization is good!
May be exist native D function or D-operator, like ```(a,b) = x /% y;``` ?
| |||
September 19, 2023 Re: Which function returns a pair after division ? (integer,frac) | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Vitaliy Fadeev | On Tuesday, 19 September 2023 at 03:44:18 UTC, Vitaliy Fadeev wrote: >What D function or D operator does this?
and returns (2,1) at once? If you use LDC it'll automatically optimize that for you | |||