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 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 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 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 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 Doperator, like ```(a,b) = x /% y;``` ?

September 19 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 