Linda, very nice.  Kip

Sent from my iPad


On Dec 16, 2012, at 12:05 AM, "Linda Alvord" <lindaalv...@verizon.net> wrote:

> Kip, this is almost readable right after it shows up in Algebra 2!
> 
>    ((2*a)%~(-b)(+,-)%:(*:b)-4*a*c)['a b c'=:1 3 2
> _1 _2
>   ((2*a)%~(-b)(+,-)%:(*:b)-4*a*c)['a b c'=:1 0 1
> 0j1 0j_1
> 
> Linda
> -----Original Message-----
> From: programming-boun...@forums.jsoftware.com 
> [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Linda Alvord
> Sent: Thursday, December 13, 2012 9:02 PM
> To: programm...@jsoftware.com
> Subject: Re: [Jprogramming] Cool roots
> 
> Here are three one line versions of the quadratic roots. They include most of 
> the ideas which have been included so far.
> 
> 
> 
>    f=: 13 :'(((a %~ ]), (c % ])) _0.5 * b +`-@.(0>[) %: (*:b) - 4*a*c)[''a b 
> c''=:y'
> 
>   f
> 
> 3 : '(((a %~ ]), (c % ])) _0.5 * b +`-@.(0>[) %: (*:b) - 4*a*c)[''a b c''=:y'
> 
>   f 1 3 2
> 
> _2 _1
> 
>   f 1 0 1
> 
> 0j_1 0j1
> 
> 
> 
> 
> 
>   g=: 13 : '((2*a)%~(-b)(+,-)%:(*:b)-4*a*c)[''a b c ''=:y'
> 
>   g
> 
> 3 : '((2*a)%~(-b)(+,-)%:(*:b)-4*a*c)[''a b c ''=:y'
> 
>   g 1 3 2 
> 
> _1 _2
> 
>   g 1 0 1
> 
> 0j1 0j_1
> 
> 
> 
> 
> 
> 
> 
>   h=: 13 : '(2*0{y)%~(-1{y)(+,-)%:(*:1{y)-4*(0{y)*2{y'
> 
>   h
> 
> (2 * 0 { ]) %~ ([: - 1 { ]) (+ , -) [: %: ([: *: 1 { ]) - 4 * (0 { ]) * 2 { ]
> 
>   h 1 3 2 
> 
> _1 _2
> 
>   h 1 0 1
> 
> 0j1 0j_1
> 
> 
> 
> Only the third one has a tacit version which can be studied further:   
> 
> 
> 
>  5!:4 <'h'
> 
>        ┌─ 2                      
>        ├─ *                      
>  ┌─────┤   ┌─ 0                  
>  │     └───┼─ {                  
>  │         └─ ]                  
>  ├─ ~ ─── %                      
>  │         ┌─ [:                 
>  │         ├─ -                  
> ──┤     ┌───┤    ┌─ 1             
>  │     │   └────┼─ {             
>  │     │        └─ ]             
>  │     │   ┌─ +                  
>  │     ├───┼─ ,                  
>  │     │   └─ -                  
>  └─────┤                         
>        │   ┌─ [:                 
>        │   ├─ %:                 
>        │   │        ┌─ [:        
>        │   │        ├─ *:        
>        └───┤    ┌───┤    ┌─ 1    
>            │    │   └────┼─ {    
>            │    │        └─ ]    
>            │    ├─ -             
>            └────┤   ┌─ 4         
>                 │   ├─ *         
>                 │   │        ┌─ 0
>                 └───┤    ┌───┼─ {
>                     │    │   └─ ]
>                     └────┼─ *    
>                          │   ┌─ 2
>                          └───┼─ {
>                              └─ ]
> 
> Any ideas to improve these?  
> 
> 
> 
> Linda
> 
> 
> 
> -----Original Message-----
> From: programming-boun...@forums.jsoftware.com 
> [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of km
> Sent: Thursday, December 13, 2012 10:57 AM
> To: programm...@jsoftware.com
> Subject: Re: [Jprogramming] Cool roots
> 
> 
> 
> Try
> 
> 
> 
>    rootsHR =: 3 : 0
> 
> 'a b c' =. y
> 
> ((a %~ ]) , (c % ])) _0.5 * b +`-@.(0>[) %: (*:b) - 4*a*c
> 
> )
> 
>    rootsHR 1 3 2
> 
> _2 _1
> 
> 
> 
> Inside this rootsHR, a b c are "locals" which do not interfere with the 
> global a b c .
> 
> 
> 
> Kip Murray
> 
> 
> 
> Sent from my iPad
> 
> 
> 
> 
> 
> On Dec 13, 2012, at 1:13 AM, "Linda Alvord" < 
> <mailto:lindaalv...@verizon.net> lindaalv...@verizon.net> wrote:
> 
> 
> 
>> It there some way to have these three work the same way in a script.  Here's 
>> my jijs:
> 
> 
>>  a=:0 { ]
> 
>>  b=:1 { ]
> 
>>  c=:2 { ]
> 
>>  roots2=:(2*a)%~([:-b)(+,-)[:%:([:*:b)-4*a*c
> 
>>  roots2 1 3 2
> 
>> _1 _2
> 
>>  roots2 1 1 1
> 
>> _0.5j0.866025 _0.5j_0.866025
> 
>>  roots2 1 0 _1
> 
>> 1 _1
> 
>>  'a b c'=:1 1 1
> 
>>  rootsHR=:((a %~ ]) , (c % ])) _0.5 * b +`-@.(0>[) %: (*:b) - 4*a*c
> 
>>  rootsHR
> 
>> _0.5j_0.866025 _0.5j0.866025
> 
>>  erase names 'a b c'
> 
>> 1 1 1
> 
>>  a=:0 { ]
> 
>>  b=:1 { ]
> 
>>  c=:2 { ]
> 
>>  roots2=:(2*a)%~([:-b)(+,-)[:%:([:*:b)-4*a*c
> 
>>  roots2 1 3 2
> 
>> _1 _2
> 
> 
>> Linda
> 
> 
> 
>> -----Original Message-----
> 
>> From:  <mailto:programming-boun...@forums.jsoftware.com> 
>> programming-boun...@forums.jsoftware.com
> 
>> [ <mailto:programming-boun...@forums.jsoftware.com> 
>> mailto:programming-boun...@forums.jsoftware.com] On Behalf Of km
> 
>> Sent: Wednesday, December 12, 2012 11:09 PM
> 
>> To:  <mailto:programm...@jsoftware.com> programm...@jsoftware.com
> 
>> Subject: Re: [Jprogramming] Cool roots
> 
> 
>> Cool!
> 
> 
>> Sent from my iPad
> 
> 
> 
>> On Dec 12, 2012, at 6:00 PM, Henry Rich < <mailto:henryhr...@nc.rr.com> 
>> henryhr...@nc.rr.com> wrote:
> 
> 
>>> Oh, I see.  the signum function mustn't return 0.  Should be
> 
> 
>>> ((a %~ ]) , (c % ])) _0.5 * b +`-@.(0>[) %: (*:b) - 4*a*c
> 
> 
> 
>>> Henry Rich
> 
> 
>>> On 12/12/2012 10:30 AM, km wrote:
> 
>>>> Henry, the combined form below fails when b is 0.  Kip
> 
> 
>>>>   r
> 
>>>> 3 : 0
> 
>>>> 'a b c' =. y
> 
>>>> ((a %~ ]) , (c % ])) _0.5 * (%: (*:b) - 4*a*c) ((* *) + ]) b
> 
>>>> )
> 
>>>>   r 1 3 2
> 
>>>> _2 _1
> 
>>>>   r 1 2 1
> 
>>>> _1 _1
> 
>>>>   r 1 0 1
> 
>>>> 0 _
> 
>>>>   r 1 0 _1
> 
>>>> 0 __
> 
>>>>   roots 1 0 1
> 
>>>> 0j1 0j_1
> 
>>>>   roots 1 0 _1
> 
>>>> 1 _1
> 
> 
>>>> Sent from my iPad
> 
> 
> 
>>>> On Dec 12, 2012, at 6:25 AM, Henry Rich < <mailto:henryhr...@nc.rr.com> 
>>>> henryhr...@nc.rr.com> wrote:
> 
> 
>>>>> I have to disagree.  That's way cool.
> 
> 
>>>>> I assumed you used Newton's method to shine up the final values of the 
>>>>> roots, but I never knew you tried rational results too.
> 
> 
>>>>> It is possible to produce accurate results for quadratics without such 
>>>>> heroic measures.  You just can't use the quadratic formula like you 
>>>>> learned it in highschool.
> 
> 
>>>>> There's the usual quadratic formula:
> 
> 
>>>>> (2*a) %~ (-b) (+,-) %: (b^2) - 4*a*c
> 
> 
>>>>> and there's a less-well-known alternative form:
> 
> 
>>>>> (2*c) % (-b) (-,+) %: (b^2) - 4*a*c
> 
> 
>>>>> Each version produces two roots.  The roots created are more accurate 
>>>>> when +-(-b) is positive, so you can get one accurate root from each 
>>>>> formula.
> 
> 
>>>>> To calculate, use the combined form
> 
> 
>>>>> ((a %~ ]) , (c % ])) _0.5 * (%: (*:b) - 4*a*c) ((* *) + ]) b
> 
> 
>>>>> Accuracy has a coolness all its own.
> 
> 
>>>>> Henry Rich
> 
> 
>>>>> On 12/12/2012 3:13 AM, Roger Hui wrote:
> 
>>>>>>> ... produce more accurate results in some difficult cases.
> 
> 
>>>>>>  c=: p. <20$1.5
> 
>>>>>>  c
> 
>>>>>> 3325.26 _44336.8 280799 _1.1232e6 3.18239e6 _6.78911e6 1.13152e7
> 
>>>>>> _1.50869e7
> 
>>>>>> 1.63441e7 _1.45281e7 1.0654e7 _6.45695e6 3.22847e6 _1.3245e6
> 
>>>>>> 441501
> 
>>>>>> _117734
> 
>>>>>> 24527.8 _3847.5 427.5 _30 1
> 
>>>>>>  p. c
> 
>>>>>> ┌─┬───────────────────────────────────────────────────────────────
> 
>>>>>> ─
> 
>>>>>> ───────────────┐
> 
>>>>>> │1│3r2 3r2 3r2 3r2 3r2 3r2 3r2 3r2 3r2 3r2 3r2 3r2 3r2 3r2 3r2 3r2
> 
>>>>>> 3r2 3r2
> 
>>>>>> 3r2 3r2│
> 
>>>>>> └─┴───────────────────────────────────────────────────────────────
> 
>>>>>> ─
> 
>>>>>> ───────────────┘
> 
> 
> 
> 
>>>>>> On Tue, Dec 11, 2012 at 11:29 PM, Roger Hui < 
>>>>>> <mailto:rogerhui.can...@gmail.com> rogerhui.can...@gmail.com>wrote:
> 
> 
>>>>>>> You may or may not know that p. employs some extraordinary measures 
>>>>>>> which
> 
>>>>>>> produce more accurate results in some difficult cases.   But those
> 
>>>>>>> extraordinary measures are not "cool".  For example:
> 
> 
>>>>>>>  w=: p. <1+i.20   NB. Wilkinson's polynomial< 
>>>>>>> <http://en.wikipedia.org/wiki/Wilkinson_polynomial> 
>>>>>>> http://en.wikipedia.org/wiki/Wilkinson_polynomial>
> 
>>>>>>>  w
> 
>>>>>>> 2432902008176640000 _8752948036761600000 13803759753640704000
> 
>>>>>>> _12870931245150988800 8037811822645051776 _3599979517947607200
> 
>>>>>>> 1206647803780373360 _311333643161390640 63030812099294896
> 
>>>>>>> _10142299865511450 1307535010540395 _135585182899530 11310276995381 
>>>>>>> _7561...
> 
> 
>>>>>>>  p. w
> 
>>>>>>> ┌─┬──────────────────────────────────────────────────┐
> 
>>>>>>> │1│20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1│
> 
>>>>>>> └─┴──────────────────────────────────────────────────┘
> 
> 
> 
> 
> 
> 
>>>>>>> On Tue, Dec 11, 2012 at 3:40 PM, Henry Rich < 
>>>>>>> <mailto:henryhr...@nc.rr.com> henryhr...@nc.rr.com> wrote:
> 
> 
>>>>>>>> None of these cute ways is very accurate in tough cases:
> 
> 
>>>>>>>> 0j15 ": (2*a) %~ (-b) (+,-) %: (b^2) - 4*a*c [ 'a b c' =. 1e_6
> 
>>>>>>>> 1e6 1e_6
> 
>>>>>>>> 0.000000000000000 _1000000000000.000000000000000
> 
> 
>>>>>>>> But p. does better:
> 
> 
>>>>>>>>  0j15 ": 1 {:: p. c,b,a
> 
>>>>>>>> _1000000000000.000000000000000 _0.000000000001000
> 
> 
>>>>>>>> Henry Rich
> 
> 
> 
> 
>>>>>>>> On 12/11/2012 6:29 PM, Roger Hui wrote:
> 
> 
>>>>>>>>> There are some cheeky (or is it cheesy?) versions:
> 
> 
>>>>>>>>> (2*a) %~ (-b) (+,-) %: (b^2) - 4*a*c  NB. Kip Murray
> 
>>>>>>>>> (2*a) %~ - b (+,-) %: (b^2) - 4*a*c
> 
>>>>>>>>> (+:a) %~ - b (+,-) %: (*:b) - 4*a*c
> 
>>>>>>>>> -: a %~ - b (+,-) %: (*:b) - 4*a*c
> 
> 
> 
> 
>>>>>>>>> On Tue, Dec 11, 2012 at 11:37 AM, km < <mailto:k...@math.uh.edu> 
>>>>>>>>> k...@math.uh.edu> wrote:
> 
> 
>>>>>>>>> It appears this could be translated into J as the rather cool
> 
> 
>>>>>>>>>> (2*a) %~ (-b) (+,-) %: (b^2) - 4*a*c
> 
> 
>>>>>>>>>> Sent from my iPad
> 
> 
> 
>>>>>>>>>> On Dec 11, 2012, at 12:59 PM, Roger Hui
> 
>>>>>>>>>> < <mailto:rogerhui.can...@gmail.com> rogerhui.can...@gmail.com>
> 
>>>>>>>>>> wrote:
> 
> 
>>>>>>>>>> Example from the Iverson and McDonnell *Phrasal
> 
>>>>>>>>>>> Forms*<http://www.jsoftware.**com/papers/fork.htm<http://www.
> 
>>>>>>>>>>> j software.com/papers/fork.htm>>paper
> 
>>>>>>>>>>> (which
> 
>>>>>>>>>>> introduced fork):
> 
> 
>>>>>>>>>>> (-b)(+,-)√((b*2)-4×a×c)÷2×a
> 
> 
>>>>>>>>>>> √ is a postulated APL primitive, spelled %: in J.
> 
> 
> 
> 
> 
>>>>>>>>>>> On Tue, Dec 11, 2012 at 10:49 AM, km < <mailto:k...@math.uh.edu> 
>>>>>>>>>>> k...@math.uh.edu> wrote:
> 
> 
>>>>>>>>>>> What is the coolest way of programming the quadratic formula
> 
>>>>>>>>>>> in J?  We are
> 
> 
>>>>>>>>>>> finding the roots of polynomial c + x*(b + x*a) without using
> 
>>>>>>>>>>> p. .  I offer
> 
> 
> 
>>>>>>>>>>>>   roots
> 
>>>>>>>>>>>> 3 : 0
> 
>>>>>>>>>>>> 'a b c' =. y
> 
>>>>>>>>>>>> q =. %: (b^2) - 4*a*c
> 
>>>>>>>>>>>> (2*a) %~ (-b) + q,-q
> 
>>>>>>>>>>>> )
> 
>>>>>>>>>>>>   roots 1 3 2
> 
>>>>>>>>>>>> _1 _2
> 
>>>>>>>>>>>>   roots 1 0 1
> 
>>>>>>>>>>>> 0j1 0j_1
> 
>>>>>>>>>>>>   roots 1 _2 1
> 
>>>>>>>>>>>> 1 1
> 
> 
>>>>>>>>>>>> partly as problem definition.  I am looking for cool roots verbs!
> 
> 
>>>>>>>>>>>> Kip Murray
> 
> 
>>>>>>>>>>>> Sent from my iPad
> 
> 
>>>>>>>>>>>> ------------------------------**----------------------------
> 
>>>>>>>>>>>> -
> 
>>>>>>>>>>>> -**
> 
>>>>>>>>>>>> ----------
> 
>>>>>>>>>>>> For information about J forums see
> 
>>>>>>>>>>>> <http://www.jsoftware.com/**> http://www.jsoftware.com/** 
>>>>>>>>>>>> forums.htm
> 
>>>>>>>>>>>> < <http://www.jsoftware.com/forums.htm> 
>>>>>>>>>>>> http://www.jsoftware.com/forums.htm>
> 
>>>>>>>>>>> ------------------------------**-----------------------------
> 
>>>>>>>>>>> -
> 
>>>>>>>>>>> **
> 
>>>>>>>>>>> ----------
> 
>>>>>>>>>>> For information about J forums see
> 
>>>>>>>>>>> <http://www.jsoftware.com/**> http://www.jsoftware.com/** forums.htm
> 
>>>>>>>>>>> < <http://www.jsoftware.com/forums.htm> 
>>>>>>>>>>> http://www.jsoftware.com/forums.htm>
> 
>>>>>>>>>> ------------------------------**------------------------------
> 
>>>>>>>>>> *
> 
>>>>>>>>>> *
> 
>>>>>>>>>> ----------
> 
>>>>>>>>>> For information about J forums see  <http://www.jsoftware.com/**> 
>>>>>>>>>> http://www.jsoftware.com/**
> 
>>>>>>>>>> forums.htm < <http://www.jsoftware.com/forums.htm> 
>>>>>>>>>> http://www.jsoftware.com/forums.htm>
> 
> 
> 
>>>>>>>>>> ------------------------------**------------------------------
> 
>>>>>>>>>> *
> 
>>>>>>>>>> *
> 
>>>>>>>>> ----------
> 
>>>>>>>>> For information about J forums see
> 
>>>>>>>>> <http://www.jsoftware.com/**forums.htm%3chttp:/www.jsoftware.com/> 
>>>>>>>>> http://www.jsoftware.com/**forums.htm<http://www.jsoftware.com/
> 
>>>>>>>>> f
> 
>>>>>>>>> orums.htm>
> 
> 
> 
>>>>>>>>> ------------------------------**------------------------------*
> 
>>>>>>>>> *
> 
>>>>>>>> ----------
> 
>>>>>>>> For information about J forums see
> 
>>>>>>>> <http://www.jsoftware.com/**forums.htm%3chttp:/www.jsoftware.com/f> 
>>>>>>>> http://www.jsoftware.com/**forums.htm<http://www.jsoftware.com/f
> 
>>>>>>>> o
> 
>>>>>>>> rums.htm>
> 
>>>>>> ------------------------------------------------------------------
> 
>>>>>> -
> 
>>>>>> --- 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> http://www.jsoftware.com/forums.htm
> 
>>>> --------------------------------------------------------------------
> 
>>>> -
> 
>>>> - 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> http://www.jsoftware.com/forums.htm
> 
>> ----------------------------------------------------------------------
> 
>> 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> 
>> http://www.jsoftware.com/forums.htm
> 
> ----------------------------------------------------------------------
> 
> 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
> 
> ----------------------------------------------------------------------
> 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