To continue with the rotation challenges, write a verb that rotates a linear
polynomial (coeffs in x) by 0 {:: y with a centre of 1 {:: y:

   1 2 linrot 1p1 ; 0 1
1 2
   1 2 linrot 1r2p1 ; 0 1
1 _0.5
   1 2 linrot 1p1;1 1
_3 2

My take:
linrot=: ({: %. 1 ,. {.)@rotposmat
 rotposmat=: centre + j./@posmat |:@:+.@:* r.@angle
  centre=: 1&({::)@]
  posmat=: (] ,: p.)&0 1@[ - centre
  angle=: 0&({::)@]

It uses matrix division on a rotated set of two points from the original
polynomial. Not very elegant, but I’m pretty sure it works.

Best regards,
Louis

> On 17 Feb 2016, at 06:40, Kip Murray <[email protected]> wrote:
> 
> Not bad.  I didn't know about r.  .  For clean I use
> 
> clean =: (* *!.1e_14@|)"0&.+.
> 
> --Kip
> 
> On Tuesday, February 16, 2016, Raul Miller <[email protected] 
> <mailto:[email protected]>> wrote:
> 
>> Well...
>> 
>>   rottheta=: (rot~ r.)~
>>   1r2p1 rottheta 3 4
>> _4 3
>>   1r4p1 rottheta _1 1
>> _1.41421 1.11022e_16
>> 
>> I remember there being a concise phrase to clean irrelevant bits near
>> zero in a complex number, but I can't remember what I need to search
>> on to find it, and my foggy memory of how to write it is failing me at
>> the moment.
>> 
>> Still, this gets you close.
>> 
>> --
>> Raul
>> 
>> 
>> On Tue, Feb 16, 2016 at 11:50 PM, Kip Murray <[email protected]
>> <javascript:;>> wrote:
>>> I'm retired with time to "fool around".  Finding an old rot90 verb that
>>> used multiplication by a 2 by 2 matrix, I sought a more direct way using
>>> complex numbers and found one of the solutions that was posted.  I also
>>> learned a lot from the other solutions posted, thanks everyone!
>>> 
>>> New puzzle: find a complex analysis way to do a rotation given its angle
>> in
>>> radians, examples:
>>> 
>>>    1r2p1 rottheta 3 4
>>> _4 3
>>> 
>>>    1r4p1 rottheta _1 1
>>> _1.414213562 0
>>> 
>>> --Kip
>>> 
>>> I'm also a former math professor!
>>> 
>>> On Tuesday, February 16, 2016, David Lambert <[email protected]
>> <javascript:;>> wrote:
>>> 
>>>> 
>>>> what's your agenda, are you writing a book? Isn't there a homogeneous
>>>> coordinate system/transformation lab?
>>>> 
>>>>> 
>>>>> On 02/16/2016 06:16 PM, [email protected]
>> <javascript:;> wrote:
>>>>> 
>>>>>> Date: Tue, 16 Feb 2016 15:18:43 -0600
>>>>>> From: Kip Murray<[email protected] <javascript:;>>
>>>>>> To:"[email protected] <javascript:;>" <
>> [email protected] <javascript:;>>
>>>>>> Subject: [Jprogramming] A plane rotation
>>>>>> Message-ID:
>>>>>>    <
>> caofworgvydb1nmjwxkb0wosyfnlubxcdz20sv11uksfcfay...@mail.gmail.com
>> <javascript:;>>
>>>>>> Content-Type: text/plain; charset=UTF-8
>>>>>> 
>>>>>> Fairly easy: write a verb that rotates a point in the plane by the
>> angle
>>>>>> of
>>>>>> a given complex number.  For example
>>>>>> 
>>>>>>     1j1 rot 1 1  NB. Rotate 1 1 counterclockwise 45 degrees
>>>>>>  0 1.414213562
>>>>>> 
>>>>>> Background information:  when you multiply two complex numbers the
>>>>>> magnitudes are multiplied and the angles are added.
>>>>>> 
>>>>>> --Kip Murray
>>>>>> 
>>>>>> 
>>>>> 
>>>> ----------------------------------------------------------------------
>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>> 
>>> 
>>> 
>>> --
>>> Sent from Gmail Mobile
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
> 
> 
> 
> -- 
> Sent from Gmail Mobile
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm 
> <http://www.jsoftware.com/forums.htm>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to