1(kill(all),0); 20$ 3 4/* numbers */ 5 6map('signum,[-2, -2/3, -3.4b-2, -7.8b-32]); 7[- 1, - 1, - 1.0b0, - 1.0b0]$ 8 9map('signum,[0,0.0, 0.0b0]); 10[0,0.0,0.0b0]$ 11 12map('signum,[2, 2/3, 3.4b-2, 7.8b-32]); 13[1,1,1.0b0,1.0b0]$ 14 15map('signum, [minf, %pi, %e, %phi, inf]); 16[-1,1,1,1,1]$ 17 18signum(x); 19signum(x)$ 20 21signum(rat(x)); 22signum(x)$ 23 24/* reflection */ 25 26signum(a) + signum(-a)$ 270$ 28 29signum(a - b) + signum(b-a); 300$ 31 32signum(rat(a-b)) + signum(rat(b-a)); 330$ 34 35/* expunge negative or positive factors */ 36 37signum(sqrt(6) * x); 38signum(x)$ 39 40signum(-sqrt(5) * x); 41-signum(x)$ 42 43signum(x^2 + 1); 441$ 45 46/* nounform for complex */ 47 48(declare(z, complex),0); 490$ 50 51signum(z); 52signum(z)$ 53 54signum(%i); 55signum(%i)$ 56 57signum(%i - 6); 58signum(%i - 6)$ 59 60signum(z^2 + 1); 61signum(z^2 + 1)$ 62 63(assume(p > 0, n < 0, pz >= 0, nz <= 0),0); 640$ 65 66signum(p * x); 67signum(x)$ 68 69signum(n * x); 70-signum(x)$ 71 72signum(pz * x); 73signum(pz * x)$ 74 75signum(nz * x); 76signum(nz * x)$ 77 78signum(p * n * x); 79-signum(x)$ 80 81signum(signum(x)); 82signum(x)$ 83 84factor(signum(p * x + p)); 85signum(x + 1)$ 86 87factor(signum(p * x^2 + p)); 881$ 89 90signum(p * x) - signum(x); 910$ 92 93signum(n * x) + signum(x); 940$ 95 96signum(%i * sqrt(1 - sqrt(2))); 97-1$ 98 99limit(signum(x),x,minf); 100-1$ 101 102limit(signum(x),x,0,'minus); 103-1$ 104 105limit(signum(x),x,0); 106und$ 107 108limit(signum(x),x,0,'plus); 1091$ 110 111limit(signum(x),x,inf); 1121$ 113 114limit(x * signum(x),x,0); 1150$ 116 117limit(signum(x+a),x,minf); 118-1$ 119 120limit(signum(x+a),x,inf); 1211$ 122 123(assume(notequal(a,0)),0); 1240$ 125 126limit(signum(x),x,a); 127signum(a)$ 128 129limit(signum(a*x),x,minf); 130-signum(a)$ 131 132limit(signum(a*x),x,inf); 133signum(a)$ 134 135limit(signum(x),x,1/a); 136signum(1/a)$ 137 138realpart(signum(x)); 139signum(x)$ 140 141imagpart(signum(x)); 1420$ 143 144rectform(signum(x)); 145signum(x)$ 146 147rectform(signum(x + %i)); 148x/sqrt(x^2+1)+%i/sqrt(x^2+1)$ 149 150rectform(signum(42 + %i*x)); 151%i*x/sqrt(x^2+1764)+42/sqrt(x^2+1764)$ 152 153rectform(signum(x+%i*y)); 154realpart(signum(%i*y+x))+%i*imagpart(signum(%i*y+x))$ 155 156(forget(p > 0, n < 0, pz >= 0, nz <= 0,notequal(a,0)), remove(z,complex), 0); 1570$ 158 159/* SF bug #2242: "integrating function with signum incorrect" */ 160 161integrate(x*signum(x^2-1/4),x,-1,0); 162'integrate(x*signum(x^2-1/4),x,-1,0); 163 164/* SF bug #3123: "integrate(x*signum(x^2 - 4), x, 0, 3) yields spurious result" */ 165 166integrate(x*signum(x^2 - 4), x, 0, 3); 167'integrate(x*signum(x^2 - 4), x, 0, 3); 168 169/* integrate can handle signum if it has constant sign between limits of integration */ 170 171integrate(x*signum(x^2-1/4),x, -1, -1/2); 172-3/8; 173 174integrate(x*signum(x^2-1/4),x, -1/2, 1/2); 1750; 176 177integrate(x*signum(x^2-1/4),x, 1/2, 1); 1783/8; 179 180/* ... or it's an odd function from -a to a */ 181 182integrate(x*signum(x^2-1/4),x,-1,1); 1830; 184 185/* other integrate(signum) examples */ 186 187integrate(x*signum(x^3 - 8), x, 0, 3); 188'integrate(x*signum(x^3 - 8), x, 0, 3); 189 190integrate(x*signum(x^3 - 8), x, -2, 5); 191'integrate(x*signum(x^3 - 8), x, -2, 5); 192 193integrate(x*signum(x^3 - 8), x, 2, 5); 19421/2; 195