Mercurial > octave
comparison libinterp/corefcn/quadcc.cc @ 21721:bcc30b45a225
define octave_numeric_limits template methods for Inf and NaN
* lo-ieee.h (octave_numeric_limits::Inf, octave_numeric_limits::NaN):
New methods.
* Canvas.cc, data.cc, graphics.cc, graphics.in.h, oct-handle.h,
oct-stream.cc, quadcc.cc, sparse-xdiv.cc, str2double.cc, variables.h,
__glpk__.cc, __init_fltk__.cc, __voronoi__.cc, octave.cc, Matrix.cc,
CNDArray.cc, CSparse.cc, Sparse-C.cc, dDiagMatrix.cc, dMatrix.cc,
dSparse.cc, fCMatrix.cc, fCNDArray.cc, fDiagMatrix.cc, fMatrix.cc,
Faddeeva.cc, eigs-base.cc, lo-mappers.cc, lo-mappers.h, lo-specfun.cc,
oct-norm.cc, oct-rand.cc, oct-rand.h, oct-spparms.cc, randgamma.cc,
randpoisson.cc: Use them instead of octave_Inf, octave_Float_Inf,
octave_NaN, and octave_Float_NaN.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 17 May 2016 01:11:27 -0400 |
parents | 6c2fd62db1f7 |
children | bae585228161 |
comparison
equal
deleted
inserted
replaced
21720:b28c26ae737c | 21721:bcc30b45a225 |
---|---|
1700 } | 1700 } |
1701 Vinvfx (iv->fx, &(iv->c[idx[3]]), 3); | 1701 Vinvfx (iv->fx, &(iv->c[idx[3]]), 3); |
1702 Vinvfx (iv->fx, &(iv->c[idx[2]]), 2); | 1702 Vinvfx (iv->fx, &(iv->c[idx[2]]), 2); |
1703 Vinvfx (iv->fx, &(iv->c[0]), 0); | 1703 Vinvfx (iv->fx, &(iv->c[0]), 0); |
1704 for (i = 0; i < nnans; i++) | 1704 for (i = 0; i < nnans; i++) |
1705 iv->fx[nans[i]] = octave_NaN; | 1705 iv->fx[nans[i]] = octave_numeric_limits<double>::NaN (); |
1706 iv->a = iivals[j]; | 1706 iv->a = iivals[j]; |
1707 iv->b = iivals[j + 1]; | 1707 iv->b = iivals[j + 1]; |
1708 iv->depth = 3; | 1708 iv->depth = 3; |
1709 iv->rdepth = 1; | 1709 iv->rdepth = 1; |
1710 iv->ndiv = 0; | 1710 iv->ndiv = 0; |
1820 // Downdate any NaNs. | 1820 // Downdate any NaNs. |
1821 if (nnans > 0) | 1821 if (nnans > 0) |
1822 { | 1822 { |
1823 downdate (&(iv->c[idx[d]]), n[d], d, nans, nnans); | 1823 downdate (&(iv->c[idx[d]]), n[d], d, nans, nnans); |
1824 for (i = 0; i < nnans; i++) | 1824 for (i = 0; i < nnans; i++) |
1825 iv->fx[nans[i]] = octave_NaN; | 1825 iv->fx[nans[i]] = octave_numeric_limits<double>::NaN (); |
1826 } | 1826 } |
1827 | 1827 |
1828 // Compute the error estimate. | 1828 // Compute the error estimate. |
1829 nc = 0.0; | 1829 nc = 0.0; |
1830 for (i = n[d - 1] + 1; i <= n[d]; i++) | 1830 for (i = n[d - 1] + 1; i <= n[d]; i++) |
1954 Vinvfx (ivl->fx, ivl->c, 0); | 1954 Vinvfx (ivl->fx, ivl->c, 0); |
1955 if (nnans > 0) | 1955 if (nnans > 0) |
1956 { | 1956 { |
1957 downdate (ivl->c, n[0], 0, nans, nnans); | 1957 downdate (ivl->c, n[0], 0, nans, nnans); |
1958 for (i = 0; i < nnans; i++) | 1958 for (i = 0; i < nnans; i++) |
1959 ivl->fx[nans[i]] = octave_NaN; | 1959 ivl->fx[nans[i]] = octave_numeric_limits<double>::NaN (); |
1960 } | 1960 } |
1961 for (i = 0; i <= n[d]; i++) | 1961 for (i = 0; i <= n[d]; i++) |
1962 { | 1962 { |
1963 ivl->c[idx[d] + i] = 0.0; | 1963 ivl->c[idx[d] + i] = 0.0; |
1964 for (j = i; j <= n[d]; j++) | 1964 for (j = i; j <= n[d]; j++) |
1980 // Check for divergence. | 1980 // Check for divergence. |
1981 ivl->ndiv = iv->ndiv + (fabs (iv->c[0]) > 0 | 1981 ivl->ndiv = iv->ndiv + (fabs (iv->c[0]) > 0 |
1982 && ivl->c[0] / iv->c[0] > 2); | 1982 && ivl->c[0] / iv->c[0] > 2); |
1983 if (ivl->ndiv > ndiv_max && 2 * ivl->ndiv > ivl->rdepth) | 1983 if (ivl->ndiv > ndiv_max && 2 * ivl->ndiv > ivl->rdepth) |
1984 { | 1984 { |
1985 igral = gnulib::copysign (octave_Inf, igral); | 1985 igral = gnulib::copysign (octave_numeric_limits<double>::Inf (), igral); |
1986 warning ("quadcc: divergent integral detected"); | 1986 warning ("quadcc: divergent integral detected"); |
1987 break; | 1987 break; |
1988 } | 1988 } |
1989 | 1989 |
1990 // Compute the local integral. | 1990 // Compute the local integral. |
2045 Vinvfx (ivr->fx, ivr->c, 0); | 2045 Vinvfx (ivr->fx, ivr->c, 0); |
2046 if (nnans > 0) | 2046 if (nnans > 0) |
2047 { | 2047 { |
2048 downdate (ivr->c, n[0], 0, nans, nnans); | 2048 downdate (ivr->c, n[0], 0, nans, nnans); |
2049 for (i = 0; i < nnans; i++) | 2049 for (i = 0; i < nnans; i++) |
2050 ivr->fx[nans[i]] = octave_NaN; | 2050 ivr->fx[nans[i]] = octave_numeric_limits<double>::NaN (); |
2051 } | 2051 } |
2052 for (i = 0; i <= n[d]; i++) | 2052 for (i = 0; i <= n[d]; i++) |
2053 { | 2053 { |
2054 ivr->c[idx[d] + i] = 0.0; | 2054 ivr->c[idx[d] + i] = 0.0; |
2055 for (j = i; j <= n[d]; j++) | 2055 for (j = i; j <= n[d]; j++) |
2071 // Check for divergence. | 2071 // Check for divergence. |
2072 ivr->ndiv = iv->ndiv + (fabs (iv->c[0]) > 0 | 2072 ivr->ndiv = iv->ndiv + (fabs (iv->c[0]) > 0 |
2073 && ivr->c[0] / iv->c[0] > 2); | 2073 && ivr->c[0] / iv->c[0] > 2); |
2074 if (ivr->ndiv > ndiv_max && 2 * ivr->ndiv > ivr->rdepth) | 2074 if (ivr->ndiv > ndiv_max && 2 * ivr->ndiv > ivr->rdepth) |
2075 { | 2075 { |
2076 igral = gnulib::copysign (octave_Inf, igral); | 2076 igral = gnulib::copysign (octave_numeric_limits<double>::Inf (), igral); |
2077 warning ("quadcc: divergent integral detected"); | 2077 warning ("quadcc: divergent integral detected"); |
2078 break; | 2078 break; |
2079 } | 2079 } |
2080 | 2080 |
2081 // Compute the local integral. | 2081 // Compute the local integral. |