Devon's & Robert's ideas are good. Don't worry about performance until you get something working. Then use the performance monitor to tune. Almost certainly you will be fixing the wrong thing if you try to optimize first.

Henry Rich

On 5/17/2013 10:13 PM, P T wrote:
Thanks Devon and Robert.

Sure, we can replace zeros with infinity and vice versa before and after
division. But, can it be avoided? What I am looking for is conditional
division without writing an explicit loop. My intention is to represent an
electrical transmission network with matrices and they can potentially be
large. I am trying to minimizing the number of operations.

I am reading on sparse matrices in "Learning J" by Roger Stokes and looks
like it can do what I am looking for. But, I am not sure if it actually
does not perform the unnecessary operations (i.e. division by zeros) or
just a display issue.

x =: 1 $. 6 6                                    NB. an empty 6x6 matrix
x =: 4 5 6 7 ( 0 0 ; 1 1; 2 2; 3 3) } x   NB. insert some data
x
0 0 │ 4
1 1 │ 5
2 2 │ 6
3 3 │ 7

y =: 1 $. 6 6
y =: 1 2 3 4 ( 0 0 ; 1 1; 2 2; 3 3) } y
y
0 0 │ 1
1 1 │ 2
2 2 │ 3
3 3 │ 4

x%y
0 0 │    4
1 1 │  2.5
2 2 │    2
3 3 │ 1.75

Thanks,
PT



On Fri, May 17, 2013 at 6:45 PM, Robert Knight <[email protected]>wrote:

*PT-*

To modify the (infinite) "zero-division" result from *infinity* to
*zero*...

How about adding infinity to the divisor's zero-elements?

*z =: x%y+_*y=0*


    ]x =. 2 2 $ 2

2 2
2 2

    ]y =. 2 2 $ i.4

0 1
2 3

    ]z =. x%y+_*y=0

0        2
1 0.666667

*-Robert Knight*
(Also a J-newbie)


On Fri, May 17, 2013 at 6:44 PM, P T <[email protected]> wrote:


I am learning J (J602) and dividing one table with another. When division
by zero occurs, I want the the value to be zero instead of infinity.  For
example, in the results below, I want the first element to be 0.0 instead
of _

]x =. 2 2 $ 2
2 2
2 2

]y=. 2 2 $ i.4
0 1
2 3

x%y
_        2
1 0.666667


May be I can replace all occurrences of _ with 0.0. But, can I avoid this
additional step?

Thanks,
PT
----------------------------------------------------------------------
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