FunctionSign[f,{x1,x2,…}]
finds the real sign of the function f with variables x1,x2,… over the reals.
FunctionSign[f,{x1,x2,…},dom]
finds the real sign with variables restricted to the domain dom.
FunctionSign[{f,cons},{x1,x2,…},dom]
gives the sign when variables are restricted by the constraints cons.
FunctionSign
FunctionSign[f,{x1,x2,…}]
finds the real sign of the function f with variables x1,x2,… over the reals.
FunctionSign[f,{x1,x2,…},dom]
finds the real sign with variables restricted to the domain dom.
FunctionSign[{f,cons},{x1,x2,…},dom]
gives the sign when variables are restricted by the constraints cons.
Details and Options
- Function sign is also known as positive, non-negative, negative, non-positive, strictly positive and strictly negative.
- By default, the following definitions are used:
-

+1 non-negative, i.e.
for all 

0 identically zero, i.e.
for all 

-1 non-positive, i.e.
for all 

Indeterminate neither non-negative nor non-positive - The zero function is both non-negative and non-positive.
- With the setting StrictInequalitiesTrue, the following definitions are used:
-

+1 positive, i.e.
for all 

-1 negative, i.e.
for all 

Indeterminate neither positive nor negative - Possible values for dom include: Reals, Integers, PositiveReals, PositiveIntegers, etc. The default is Reals.
- The function f should be a real-valued function for all xi in the domain dom that satisfy the constraints cons.
- cons can contain equations, inequalities or logical combinations of these.
- The following options can be given:
-
Assumptions $Assumptions assumptions on parameters GenerateConditions True whether to generate conditions on parameters PerformanceGoal $PerformanceGoal whether to prioritize speed or quality StrictInequalities False whether to require a strict sign - Possible settings for GenerateConditions include:
-
Automatic nongeneric conditions only True all conditions False no conditions None return unevaluated if conditions are needed - Possible settings for PerformanceGoal are "Speed" and "Quality".
Examples
open all close allBasic Examples (3)
Scope (8)
FunctionSign[Sin[x], x]FunctionSign[2 ^ x, x]FunctionSign[x - Sqrt[x ^ 2], x]Plot[{Sin[x], 2 ^ x, x - Sqrt[x ^ 2]}, {x, -3, 3}]A function that is not real valued has an Indeterminate sign:
FunctionSign[Log[x] ^ 2, x]The function is real valued and non-negative for positive
:
FunctionSign[{Log[x] ^ 2, x > 0}, x]Univariate functions with constraints on the variable:
FunctionSign[{Sin[x], 0 ≤ x ≤ Pi}, x]FunctionSign[{x - Sqrt[x ^ 2], x ≥ 0}, x]The strict sign of a function:
FunctionSign[Sin[x] + 1, x, StrictInequalities -> True]FunctionSign[Sin[x] + 3 / 2, x, StrictInequalities -> True]
is non-negative, but not strictly positive:
Plot[{Sin[x] + 1, Sin[x] + 3 / 2}, {x, -10, 10}]FunctionSign[x ^ 2 + y ^ 2, {x, y}]FunctionSign[x y, {x, y}]Plot3D[{x ^ 2 + y ^ 2, x y, 0}, {x, -2, 2}, {y, -2, 2}]Multivariate functions with constraints on variables:
FunctionSign[{x y, x ≥ 0 && y ≤ 0}, {x, y}]FunctionSign[{x ^ 2 + y ^ 2 - 1, x ^ 4 + y ^ 4 == 1}, {x, y}]Functions with symbolic parameters:
FunctionSign[x ^ 2 + a x + b, x]FunctionSign[x ^ 2 + a x y + y ^ 2, {x, y}]Multivariate functions over the integers:
FunctionSign[(-1) ^ (x y(x + y)), {x, y}, Integers]FunctionSign[{x ^ 2 + y ^ 2 - 1, x > y}, {x, y}, Integers]Options (5)
Assumptions (1)
FunctionSign gives a conditional answer here:
FunctionSign[{a x + b, 0 < x < 1}, x]With these assumptions, the function has the opposite sign:
FunctionSign[{a x + b, 0 < x < 1}, x, Assumptions -> b < -1 && a < 1]GenerateConditions (2)
By default, FunctionSign may generate conditions on symbolic parameters:
FunctionSign[x ^ 2 + a, x]With GenerateConditionsNone, FunctionSign fails instead of giving a conditional result:
FunctionSign[x ^ 2 + a, x, GenerateConditions -> None]This returns a conditionally valid result without stating the condition:
FunctionSign[x ^ 2 + a, x, GenerateConditions -> False]By default, all conditions are reported:
FunctionSign[x ^ 2 / a ^ 2, x]With GenerateConditions->Automatic, conditions that are generically true are not reported:
FunctionSign[x ^ 2 / a ^ 2, x, GenerateConditions -> Automatic]PerformanceGoal (1)
Use PerformanceGoal to avoid potentially expensive computations:
FunctionSign[a x ^ 4 + b x ^ 3 + c x ^ 2 + d x, x, PerformanceGoal -> "Speed"]The default setting uses all available techniques to try to produce a result:
FunctionSign[a x ^ 4 + b x ^ 3 + c x ^ 2 + d x, x]StrictInequalities (1)
By default, FunctionSign computes the non-strict sign:
FunctionSign[#, x]& /@ {x ^ 2, x ^ 2 + 1}With StrictInequalitiesTrue, FunctionSign computes the strict sign:
FunctionSign[#, x, StrictInequalities -> True]& /@ {x ^ 2, x ^ 2 + 1}
is non-negative, but not strictly positive.
is strictly positive:
Plot[{x ^ 2, x ^ 2 + 1}, {x, -2, 2}]Applications (14)
Basic Applications (3)
FunctionSign[E ^ x, x]The graph of
lies in the upper half-plane:
Plot[E ^ x, {x, -2, 2}]FunctionSign[-x ^ 4 + x ^ 2 - 1, x]The graph of
lies in the lower half-plane:
Plot[-x ^ 4 + x ^ 2 - 1, {x, -2, 2}]FunctionSign[Sin[x], x]The graph of
is not contained in either the upper or the lower half-plane:
Plot[Sin[x], {x, -2Pi, 2Pi}]Show that
restricted to
is non-negative:
FunctionSign[{Sin[x], 0 ≤ x ≤ Pi}, x]The sum of functions with sign
has sign
:
f = TriangleWave[x] + 1;
g = E ^ (x / 2);FunctionSign[f, x]FunctionSign[g, x]FunctionSign[f + g, x]Plot[{f, g, f + g}, {x, -3, 3}]The sign of the product of functions is the product of signs:
f = Cos[x] - 1;
g = Erf[x] + 3;FunctionSign[f, x]FunctionSign[g, x]FunctionSign[f g, x]Plot[{f, g, f g}, {x, -10, 10}]Calculus (6)
The derivative of a non-decreasing function is non-negative:
f = x - Cos[x];FunctionMonotonicity[f, x]Plot[f, {x, -10, 10}]FunctionSign[D[f, x], x]If
is non-negative, then
, for
, is non-negative:
f = x ^ 2 - x + 1;FunctionSign[f, x]Integrate[f, {x, a, b}]FunctionSign[{%, a < b}, {a, b}]A sequence is non-decreasing iff its differences are non-negative:
FunctionMonotonicity[{n!, Element[n, PositiveIntegers]}, n]DifferenceDelta[n!, n]FunctionSign[{%, Element[n, PositiveIntegers]}, n]Sums of non-negative sequences are non-decreasing:
FunctionSign[{1 / k, Element[k, PositiveIntegers]}, k]Sum[1 / k, {k, 1, n}]FunctionMonotonicity[{%, Element[n, PositiveIntegers]}, n]Check the convergence of a non-negative series using d'Alembert's criterion:
f[n_] := (n ^ 3 - n) / 2 ^ nFunctionSign[{f[n], Element[n, PositiveIntegers]}, n]Test whether the limit of
is less than
:
Limit[f[n + 1] / f[n], n -> Infinity]Prove that the integral
is divergent:
f = (2 + TriangleWave[x]) / x;
g = 1 / x;FunctionSign[{f - g, x ≥ 1}, x]FunctionSign[{g, x ≥ 1}, x]Plot[{f, g}, {x, 1, 10}]Show that the integral of
is divergent:
Integrate[g, {x, 1, Infinity}]Plot[{NIntegrate[f, {x, 1, t}], NIntegrate[g, {x, 1, t}]}, {t, 1, 10}]Probability & Statistics (3)
PDF is always non-negative:
pdf = PDF[NormalDistribution[], x]FunctionSign[pdf, x]Plot[pdf, {x, -5, 5}]CDF is always non-negative:
cdf = CDF[NormalDistribution[], x]FunctionSign[cdf, x]Plot[cdf, {x, -5, 5}]SurvivalFunction is always non-negative:
sf = SurvivalFunction[NormalDistribution[], x]FunctionSign[sf, x]Plot[sf, {x, -5, 5}]Geometry (2)
RegionDistance is always non-negative:
RegionDistance[Triangle[], {x, y}]FunctionSign[%, {x, y}]Plot3D[Evaluate@RegionDistance[Triangle[], {x, y}], ...]Integral of a non-negative function over a region is non-negative:
FunctionSign[x ^ 4 + y ^ 4 + z ^ 4, {x, y, z}]Integrate[x ^ 4 + y ^ 4 + z ^ 4, Element[{x, y, z}, Ellipsoid[{a, b, c}, {r, s, t}]]]FunctionSign[{%, r > 0 && s > 0 && t > 0}, {a, b, c, r, s, t}]Properties & Relations (2)
The sum and product of non-negative functions are non-negative:
f = Log[x ^ 2 + y ^ 2 + 1];
g = E ^ Sin[x - y];FunctionSign[#, {x, y}]& /@ {f, g, f + g, f g}A continuous anti-derivative of a non-negative function is non-decreasing:
f = x ^ 2(Sin[x] + 1);FunctionSign[f, x]Use Integrate to compute an anti-derivative:
g = Integrate[f, x]Use FunctionContinuous to check that the anti-derivative is continuous:
FunctionContinuous[g, x]Use FunctionMonotonicity to verify that the anti-derivative is non-decreasing:
FunctionMonotonicity[g, x]Plot the function and the anti-derivative:
Plot[{f, g}, {x, -10, 10}]Related Guides
History
Text
Wolfram Research (2020), FunctionSign, Wolfram Language function, https://reference.wolfram.com/language/ref/FunctionSign.html.
CMS
Wolfram Language. 2020. "FunctionSign." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FunctionSign.html.
APA
Wolfram Language. (2020). FunctionSign. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FunctionSign.html
BibTeX
@misc{reference.wolfram_2026_functionsign, author="Wolfram Research", title="{FunctionSign}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/FunctionSign.html}", note=[Accessed: 15-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_functionsign, organization={Wolfram Research}, title={FunctionSign}, year={2020}, url={https://reference.wolfram.com/language/ref/FunctionSign.html}, note=[Accessed: 15-June-2026]}