Matvec Users’ Guide
Matvec Users' Guide
Matvec Users' Guide
- 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;