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