TheAlgorithms/Python · error · ValueError

math domain error

Error message

math domain error

What it means

Error "math domain error" thrown in TheAlgorithms/Python.

Source

Thrown at maths/numerical_analysis/square_root.py:47

    True

    >>> square_root_iterative(-1)
    Traceback (most recent call last):
        ...
    ValueError: math domain error

    >>> square_root_iterative(4)
    2.0

    >>> square_root_iterative(3.2)
    1.788854381999832

    >>> square_root_iterative(140)
    11.832159566199232
    """

    if a < 0:
        raise ValueError("math domain error")

    value = get_initial_point(a)

    for _ in range(max_iter):
        prev_value = value
        value = value - fx(value, a) / fx_derivative(value)
        if abs(prev_value - value) < tolerance:
            return value

    return value


if __name__ == "__main__":
    from doctest import testmod

    testmod()

View on GitHub (pinned to f5988cc097)

Solutions

  1. Pass a non-negative number to the square root function.
  2. Use the complex variant if negative inputs are expected.

When it happens

Trigger: Thrown at maths/numerical_analysis/square_root.py:47 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of TheAlgorithms/Python@f5988cc097 (2026-08-14). Data as JSON: /api/errors/cba9ba0d7825004c. Report an issue: GitHub.