14.09.2015 Views

Matvec Users’ Guide

Matvec Users' Guide

Matvec Users' Guide

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

46 CHAPTER 7. USER-DEFINED FUNCTION<br />

{<br />

}<br />

#<br />

# Return 1, if element >= 0<br />

# Return 0, if element == 0<br />

# Return -1, if element < 0<br />

#<br />

# Tianlin Wang at UIUC, Fri Dec 30 16:10:38 CST 1994<br />

#<br />

local(i, j, retval);<br />

if (A.class() == "Scalar") {<br />

if (A > 0) retval = 1; endif;<br />

if (A == 0) retval = 0; endif;<br />

if (A < 0) retval = -1; endif;<br />

}<br />

else if (A.class() == "Vector") {<br />

retval = Vector();<br />

retval.resize(A.size());<br />

for (i in 1:A.size()) {<br />

if (A(i) > 0) retval(i) = 1; endif;<br />

if (A(i) == 0) retval(i) = 0; endif;<br />

if (A(i) < 0) retval(i) = -1; endif;<br />

}<br />

}<br />

else if (A.class() == "Matrix") {<br />

retval = Matrix(A.nrow(),A.ncol());<br />

for (i in 1:A.nrow()) {<br />

for (j in 1:A.ncol()) {<br />

if (A(i,j) > 0) retval(i,j) = 1; endif;<br />

if (A(i,j) == 0) retval(i,j) = 0; endif;<br />

if (A(i,j) < 0) retval(i,j) = -1; endif;<br />

}<br />

}<br />

}<br />

else {<br />

retval = 0;<br />

error("sign only works for numeric objects");<br />

}<br />

return retval;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!