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 |