> Example: 5 % m. 7 (9) gives 5 *(mod 7) (inverse of 9(mod 7))
example is not clear to me:
is 5 % m. 7 (9)

7 | 5 % 9  NB.?
I don't understand % as a typical application of modular arithmetic.  
    On Monday, April 17, 2023 at 02:56:28 p.m. EDT, Henry Rich 
<henryhr...@gmail.com> wrote:  
 
 In the next beta u m. n means 'u(mod n)' and will work for + - * % ^ .  
%. coming soon.

The only specials I see with m&| are m&|@^ and m&|@(n&^) which can be 
replaced by [n] (^ m. m) y.

Example: 5 % m. 7 (9) gives 5 *(mod 7) (inverse of 9(mod 7))

Henry Rich

On 4/17/2023 2:07 PM, 'Michael Day' via Programming wrote:
> u m. n ?  I thought m. disappeared many versions ago, along with x. y. 
> etc !
> Could you provide an example?    And is m&|@u deprecated for other 
> verbs u ?
>
> Float results would be helpful.  Presumably an array would be returned 
> as float
> if at least one element needed to float,  as usual.
>
> Thanks again,
>
> Mike
>
> On 16/04/2023 17:15, Henry Rich wrote:
>> I think I have figured out a way to return float when the result has 
>> been
>> made inaccurate.
>>
>> We had no choice about m&|@^ for negative y: the behavior of that is
>> defined by the language, and it isn't modular.
>>
>> u m. n is a much cleaner solution, and faster. m&|@^ is deprecated.
>>
>> Henry Rich
>>
>> On Sun, Apr 16, 2023, 11:51 AM 'Michael Day' via Programming <
>> programm...@jsoftware.com> wrote:
>>
>>> Thanks for this and your previous comment re  (-:<.@*<:)
>>> I'm afraid I've only just noticed this later reply in my J mail folder.
>>>
>>> I was going to grumble about x!y remaining integer even when the value
>>> might be wrong.
>>> Perhaps you or others might think of a suitable warning comment in 
>>> NuVoc
>>> about dyadic !  .
>>> 2!y could perhaps be treated as special case,  being a triangular
>>> number,  y(y+1)/2 where
>>> one could right shift whichever of y, y+1 is even, but presumably that
>>> would involve too
>>> much overhead.   Caveat Calculator,  I suppose.
>>>
>>> BTW,  I see you've decided against implementing x m&|@^ y for negative
>>> integer y, integer x,
>>> and extended m.   (Though I don't remember m needing to be extended in
>>> earlier discussions!)
>>> A pity,  but it's been useful to learn that the idiom is well supported
>>> for positive y.
>>>
>>> Cheers,
>>>
>>> Mike
>>>
>>> On 14/04/2023 14:22, Henry Rich wrote:
>>>> As (x!y) is coded, the calculation is done in floating-point and then
>>>> converted to integer if the result will fit.  Loss of significance
>>>> during the calculation will make the result inaccurate.
>>>>
>>>> I think it's a JE error to return an integer value when that value
>>>> might be wrong.  Unfortunately, the way the internal interfaces are,
>>>> it's difficult to leave the value as floating-point, so you cannot use
>>>> the fact that an integer was returned as a guarantee of accuracy.
>>>>
>>>> Henry Rich
>>>>
>>>> On 4/13/2023 11:34 AM, 'Michael Day' via Programming wrote:
>>>>> Yet again I found myself resorting to Pari GP for a calculation;  my
>>>>> J function had been giving
>>>>> correct answers to a problem for lowish inputs,  but apparently gave
>>>>> up at some stage for
>>>>> higher values;  I then coded the calculation in Pari GP which gave
>>>>> the same results for low
>>>>> inputs,  but diverged from J at the business end.
>>>>>
>>>>> Looking for inconsistencies between the two functions, the
>>>>> divergence seems to appear
>>>>> around this case:
>>>>>
>>>>> m =. 134235395
>>>>>     2^.m     NB. plenty of room for multiplication in 64-bits???
>>>>> 27.0002
>>>>>
>>>>>     2!m
>>>>> 9009570568285316
>>>>>     datatype 2!m
>>>>> integer
>>>>>
>>>>>     (-:<.@*<:)m
>>>>> 9009570568285316
>>>>>     ((*<:)m)<.@%2
>>>>> 9009570568285315
>>>>>     _1 (33 b.) (*<:)m
>>>>> 9009570568285315
>>>>>
>>>>>     datatype (*<:)m
>>>>> integer
>>>>>
>>>>> So - why am I getting 2!m returned as integer but wrong? If there's
>>>>> overflow,
>>>>> why isn't it a float?  Why does    (-:<.@*<:)m return the wrong
>>>>> integer when
>>>>>     ((*<:)m)<.@%2   yields the correct integer?
>>>>>
>>>>> This was in J.04,
>>>>> Engine: j9.4.2/j64avx2/windows
>>>>> Build: commercial/2023-04-10T01:19:53/clang-15-0-7/SLEEF=1
>>>>>
>>>>> I haven't checked behaviour in earlier releases.  I didn't try
>>>>> extended integers
>>>>> for this problem.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Mike
>>>>>
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------- 
>>>>>
>>>>> For information about J forums see 
>>>>> http://www.jsoftware.com/forums.htm
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
  
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to