File: root

package info (click to toggle)
calc 2.15.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 7,848 kB
  • sloc: ansic: 62,147; makefile: 7,664; sh: 503; awk: 74; sed: 7
file content (75 lines) | stat: -rw-r--r-- 2,657 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
NAME
    root - root of a number

SYNOPSIS
    root(x, n, [, eps])

TYPES
    x           number
    n           positive integer
    eps         nonzero real, defaults to epsilon()

    return      real number

DESCRIPTION
    For real x and positive integer n, n being odd if x is negative,
    root(x,n,eps) returns a multiple of eps differing from the
    real n-th root of x (nonnegative if x is positive) by less than
    0.75 eps, usually by less than 0.5 eps.  If the n-th root of
    x is a multiple of eps, it will be returned exactly.

    For complex x and positive integer n, or negative x with positive even
    n, root(x, n, eps) returns a real or complex numbers whose real
    and imaginary parts are multiples of eps differing from the real
    and imaginary parts of the principal n-th root of x by less than
    0.75 eps, usually by less than 0.5 eps.

    For negative x and odd n, the principal n-th root of x may be
    obtained by using power(x, 1/n, eps).

EXAMPLE
    ; print root(7, 4, 1e-5), root(7, 4, 1e-10), root(7, 4, 1e-15)
    1.62658 1.6265765617 1.626576561697786

    ; print root(1+3i, 3, 1e-5), root(1 + 3i, 3, 1e-10)
    1.34241+0.59361i 1.3424077452+0.5936127825i

    ; print root(-8, 3, 1e-5), root(-8, 34, 1e-5)
    -2 ~1.05853505050032399594+~0.09807874962631613016i

    ; print root(1i, 100, 1e-20)
    0.99987663248166059864+0.01570731731182067575i

LIMITS
    n >= 0
    eps != 0

LINK LIBRARY
    void rootvalue(VALUE *x, VALUE *n, VALUE *eps, VALUE *result)
    NUMBER *qroot(NUMBER *x, NUMBER *n, NUMBER *eps)
    COMPLEX *c_root(COMPLEX *x, NUMBER *n, NUMBER *eps)

SEE ALSO
    power

## Copyright (C) 1999,2021,2023  Landon Curt Noll
##
## Calc is open software; you can redistribute it and/or modify it under
## the terms of the version 2.1 of the GNU Lesser General Public License
## as published by the Free Software Foundation.
##
## Calc is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
## or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
## Public License for more details.
##
## A copy of version 2.1 of the GNU Lesser General Public License is
## distributed with calc under the filename COPYING-LGPL.  You should have
## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
##
## Under source code control:   1995/10/25 04:03:46
## File existed as early as:    1995
##
## chongo <was here> /\oo/\     http://www.isthe.com/chongo/
## Share and enjoy!  :-)        http://www.isthe.com/chongo/tech/comp/calc/