Rewrite to make a=1  (i.e get 4 2 3 % 4)

  'b c' =:2 3%4

   (-b)(+,-)%:(*:b=:-:b)-c

_0.25j0.829156 _0.25j_0.829156

   p.3 2 4
┌─┬──────────────────────────────┐
│4│_0.25j0.829156 _0.25j_0.829156│
└─┴──────────────────────────────┘
or , to retain b, c
   'b c'=:(2 4)%3

(- -:b)(+,-)%:(*:-:b)-c

_0.333333j1.10554 _0.333333j_1.10554

   b,c
0.666667 1.33333
   p.4 2 3
┌─┬────────────────────────────────────┐
│3│_0.333333j1.10554 _0.333333j_1.10554│
└─┴────────────────────────────────────┘

 Don


On 12/12/2012 4:10 AM, km wrote:
Thanks, Linda, I like this.  Was trying to stay close to the Iverson-McDonnell 
formula.  Kip

Sent from my iPad


On Dec 12, 2012, at 2:24 AM, "Linda Alvord" <[email protected]> wrote:

Kip, Here are two thoughts:



    This uses [: only rather than both [: and @

    %~ can be "read" as "into" (it makes a prettier tree!)



a =:0 { ]

   b =:1 { ]

   c =:2 { ]

   roots2=:(2*a)%~([:-b)(+,-)[:%:([:*:b)-4*a*c

   roots2 1 3 2

_1 _2

   roots2 1 0 4

0j2 0j_2

   5!:4 <'roots2'

        ┌─ 2
  ┌─────┼─ *
  │     └─ a
  │
  ├─ ~ ─── %
  │         ┌─ [:
──┤     ┌───┼─ -
  │     │   └─ b
  │     │
  │     │   ┌─ +
  │     ├───┼─ ,
  └─────┤   └─ -
        │
        │   ┌─ [:
        │   ├─ %:
        │   │        ┌─ [:
        └───┤    ┌───┼─ *:
            │    │   └─ b
            │    ├─ -
            └────┤   ┌─ 4
                 │   ├─ *
                 └───┤    ┌─ a
                     └────┼─ *
                          └─ c



Linda



-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Roger Hui
Sent: Wednesday, December 12, 2012 2:23 AM
To: Programming forum
Subject: Re: [Jprogramming] Cool roots



Cool.









On Tue, Dec 11, 2012 at 7:54 PM, km < <mailto:[email protected]> 
[email protected]> wrote:



Apologies:
    a =: 0 { ]
    b =: 1 { ]
    c =: 2 { ]
    roots =: ( (-@b) (+ , -) [: %: *:@b - 4 * a * c ) % 2 * a
    roots 1 3 2
_1 _2
    roots 1 0 1
0j1 0j_1
    roots 1 2 1
_1 _1
Kip Murray
Sent from my iPad
On Dec 11, 2012, at 5:29 PM, Roger Hui < <mailto:[email protected]> 
[email protected]> 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:[email protected]> 
[email protected]> 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:[email protected]> 
[email protected]>
wrote:
Example from the Iverson and McDonnell *Phrasal
Forms*< <http://www.jsoftware.com/papers/fork.htm> 
http://www.jsoftware.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:[email protected]> 
[email protected]> 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/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