test_class.declarator: rng = new XorshiftRNG(0)
test_class.modifier: private final
test_class.original_string: private final IRandomNumberGenerator rng = new XorshiftRNG(0);
test_class.type: IRandomNumberGenerator
test_class.var_name: rng
test_class.file: jtstoolkit/src/test/java/ec/tstoolkit/maths/polynomials/MullerNewtonSolverTest.java
test_class.identifier: MullerNewtonSolverTest
test_case.body: @Test
      public void testComputeDiscr() {
          for (int i = 0; i < 10; i++) {
              Complex A2 = random(), B2 = random(), C2 = random();
              Complex result = B2.times(B2).minus(A2.times(C2).times(4));
              assertEquals(result, computeDiscr(B2, A2, C2), 0);
          }
      }
test_case.class_method_signature: MullerNewtonSolverTest.testComputeDiscr()
test_case.full_signature: @Test public void testComputeDiscr()
test_case.identifier: testComputeDiscr
test_case.invocations: random random random minus times times times assertEquals computeDiscr
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testComputeDiscr()
focal_class.declarator: m_p
focal_class.modifier: private
focal_class.original_string: private double[] m_p;
focal_class.type: double[]
focal_class.var_name: m_p
focal_class.declarator: m_pred
focal_class.modifier: private
focal_class.original_string: private double[] m_pred;
focal_class.type: double[]
focal_class.var_name: m_pred
focal_class.declarator: m_roots
focal_class.modifier: private
focal_class.original_string: private Complex[] m_roots;
focal_class.type: Complex[]
focal_class.var_name: m_roots
focal_class.declarator: m_remainder
focal_class.modifier: private
focal_class.original_string: private Polynomial m_remainder;
focal_class.type: Polynomial
focal_class.var_name: m_remainder
focal_class.declarator: m_idx
focal_class.modifier: private
focal_class.original_string: private int m_idx, m_degree;
focal_class.type: int
focal_class.var_name: m_idx
focal_class.declarator: m_maxerr
focal_class.modifier: private
focal_class.original_string: private double m_maxerr;
focal_class.type: double
focal_class.var_name: m_maxerr
focal_class.declarator: MITERMAX = 150
focal_class.modifier: private final static
focal_class.original_string: private final static int MITERMAX = 150;
focal_class.type: int
focal_class.var_name: MITERMAX
focal_class.declarator: MCONVERGENCE = 100
focal_class.modifier: private final static
focal_class.original_string: private final static int MCONVERGENCE = 100;
focal_class.type: int
focal_class.var_name: MCONVERGENCE
focal_class.declarator: MMAXDIST = 1e3
focal_class.modifier: private final static
focal_class.original_string: private final static double MMAXDIST = 1e3;
focal_class.type: double
focal_class.var_name: MMAXDIST
focal_class.declarator: MFACTOR = 1e5
focal_class.modifier: private final static
focal_class.original_string: private final static double MFACTOR = 1e5;
focal_class.type: double
focal_class.var_name: MFACTOR
focal_class.declarator: MKITERMAX = 1e3
focal_class.modifier: private final static
focal_class.original_string: private final static double MKITERMAX = 1e3;
focal_class.type: double
focal_class.var_name: MKITERMAX
focal_class.declarator: MFVALUE = 1e36
focal_class.modifier: private final static
focal_class.original_string: private final static double MFVALUE = 1e36;
focal_class.type: double
focal_class.var_name: MFVALUE
focal_class.declarator: MBOUND1 = 1.01
focal_class.modifier: private final static
focal_class.original_string: private final static double MBOUND1 = 1.01;
focal_class.type: double
focal_class.var_name: MBOUND1
focal_class.declarator: MBOUND2 = 0.99
focal_class.modifier: private final static
focal_class.original_string: private final static double MBOUND2 = 0.99;
focal_class.type: double
focal_class.var_name: MBOUND2
focal_class.declarator: MBOUND3 = 0.01
focal_class.modifier: private final static
focal_class.original_string: private final static double MBOUND3 = 0.01;
focal_class.type: double
focal_class.var_name: MBOUND3
focal_class.declarator: MBOUND4
focal_class.modifier: private final
focal_class.original_string: private final double MBOUND4;
focal_class.type: double
focal_class.var_name: MBOUND4
focal_class.declarator: MBOUND6
focal_class.modifier: private final
focal_class.original_string: private final double MBOUND6;
focal_class.type: double
focal_class.var_name: MBOUND6
focal_class.declarator: MBOUND7 = 1e-5
focal_class.modifier: private final static
focal_class.original_string: private final static double MBOUND7 = 1e-5;
focal_class.type: double
focal_class.var_name: MBOUND7
focal_class.declarator: MNOISESTART
focal_class.modifier: private final
focal_class.original_string: private final double MNOISESTART;
focal_class.type: double
focal_class.var_name: MNOISESTART
focal_class.declarator: MNOISEMAX = 5
focal_class.modifier: private final static
focal_class.original_string: private final static double MNOISEMAX = 5;
focal_class.type: double
focal_class.var_name: MNOISEMAX
focal_class.declarator: NITERMAX = 20
focal_class.modifier: private final static
focal_class.original_string: private final static int NITERMAX = 20;
focal_class.type: int
focal_class.var_name: NITERMAX
focal_class.declarator: NFACTOR = 5
focal_class.modifier: private final static
focal_class.original_string: private final static double NFACTOR = 5;
focal_class.type: double
focal_class.var_name: NFACTOR
focal_class.declarator: NFVALUE = 1e36
focal_class.modifier: private final static
focal_class.original_string: private final static double NFVALUE = 1e36;
focal_class.type: double
focal_class.var_name: NFVALUE
focal_class.declarator: ISQRT2 = 1.0 / Math.sqrt(2.0)
focal_class.modifier: private static final
focal_class.original_string: private static final double ISQRT2 = 1.0 / Math.sqrt(2.0);
focal_class.type: double
focal_class.var_name: ISQRT2
focal_class.declarator: NBOUND
focal_class.modifier: private final
focal_class.original_string: private final double NBOUND;
focal_class.type: double
focal_class.var_name: NBOUND
focal_class.declarator: NNOISEMAX = 5
focal_class.modifier: private final static
focal_class.original_string: private final static int NNOISEMAX = 5;
focal_class.type: int
focal_class.var_name: NNOISEMAX
focal_class.declarator: DBL_EPSILON = 2.2204460492503131e-016
focal_class.modifier: private final static
focal_class.original_string: private final static double DBL_EPSILON = 2.2204460492503131e-016;
focal_class.type: double
focal_class.var_name: DBL_EPSILON
focal_class.declarator: x0
focal_class.original_string: Complex x0, x1, x2;
focal_class.type: Complex
focal_class.var_name: x0
focal_class.declarator: h1
focal_class.original_string: Complex h1, h2;
focal_class.type: Complex
focal_class.var_name: h1
focal_class.declarator: q2
focal_class.original_string: Complex q2;
focal_class.type: Complex
focal_class.var_name: q2
focal_class.declarator: f0
focal_class.modifier: final
focal_class.original_string: final Ref<Complex> f0, f1, f2;
focal_class.type: Ref<Complex>
focal_class.var_name: f0
focal_class.declarator: iter
focal_class.original_string: int iter;
focal_class.type: int
focal_class.var_name: iter
focal_class.declarator: lqdiv
focal_class.modifier: private
focal_class.original_string: private boolean lqdiv;
focal_class.type: boolean
focal_class.var_name: lqdiv
focal_class.declarator: COMPLEX_FOR_ITER = initComplexForIter(MITERMAX)
focal_class.modifier: private static final
focal_class.original_string: private static final Complex[] COMPLEX_FOR_ITER = initComplexForIter(MITERMAX);
focal_class.type: Complex[]
focal_class.var_name: COMPLEX_FOR_ITER
focal_class.file: jtstoolkit/src/main/java/ec/tstoolkit/maths/polynomials/MullerNewtonSolver.java
focal_class.identifier: MullerNewtonSolver
focal_class.interfaces: implements IRootsSolver
focal_class.class_method_signature: MullerNewtonSolver.fdvalue(final double[] p, final int i0,
              final Ref<Complex> f, final Complex x)
focal_class.full_signature: private static void fdvalue(final double[] p, final int i0,
              final Ref<Complex> f, final Complex x)
focal_class.identifier: fdvalue
focal_class.modifiers: private static
focal_class.parameters: (final double[] p, final int i0,
              final Ref<Complex> f, final Complex x)
focal_class.return: void
focal_class.signature: void fdvalue(final double[] p, final int i0,
              final Ref<Complex> f, final Complex x)
focal_class.class_method_signature: MullerNewtonSolver.fdvalue(final double[] p, final int i0,
              final Ref<Complex> f, final Ref<Complex> df, final Complex x)
focal_class.full_signature: private static void fdvalue(final double[] p, final int i0,
              final Ref<Complex> f, final Ref<Complex> df, final Complex x)
focal_class.identifier: fdvalue
focal_class.modifiers: private static
focal_class.parameters: (final double[] p, final int i0,
              final Ref<Complex> f, final Ref<Complex> df, final Complex x)
focal_class.return: void
focal_class.signature: void fdvalue(final double[] p, final int i0,
              final Ref<Complex> f, final Ref<Complex> df, final Complex x)
focal_class.class_method_signature: MullerNewtonSolver.MullerNewtonSolver()
focal_class.full_signature: public  MullerNewtonSolver()
focal_class.identifier: MullerNewtonSolver
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  MullerNewtonSolver()
focal_class.class_method_signature: MullerNewtonSolver.check_x_value(final Ref<Complex> xb,
              final DoubleRef f2absqb, final BooleanRef rootd,
              final double f1absq, final double f2absq, final double epsilon,
              final IntRef noise)
focal_class.full_signature: private void check_x_value(final Ref<Complex> xb,
              final DoubleRef f2absqb, final BooleanRef rootd,
              final double f1absq, final double f2absq, final double epsilon,
              final IntRef noise)
focal_class.identifier: check_x_value
focal_class.modifiers: private
focal_class.parameters: (final Ref<Complex> xb,
              final DoubleRef f2absqb, final BooleanRef rootd,
              final double f1absq, final double f2absq, final double epsilon,
              final IntRef noise)
focal_class.return: void
focal_class.signature: void check_x_value(final Ref<Complex> xb,
              final DoubleRef f2absqb, final BooleanRef rootd,
              final double f1absq, final double f2absq, final double epsilon,
              final IntRef noise)
focal_class.class_method_signature: MullerNewtonSolver.clear()
focal_class.full_signature: @Override public void clear()
focal_class.identifier: clear
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void clear()
focal_class.class_method_signature: MullerNewtonSolver.exemplar()
focal_class.full_signature: @Override public MullerNewtonSolver exemplar()
focal_class.identifier: exemplar
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: MullerNewtonSolver
focal_class.signature: MullerNewtonSolver exemplar()
focal_class.class_method_signature: MullerNewtonSolver.compute_function(final double f1absq,
              final DoubleRef f2absq, final double epsilon)
focal_class.full_signature: private void compute_function(final double f1absq,
              final DoubleRef f2absq, final double epsilon)
focal_class.identifier: compute_function
focal_class.modifiers: private
focal_class.parameters: (final double f1absq,
              final DoubleRef f2absq, final double epsilon)
focal_class.return: void
focal_class.signature: void compute_function(final double f1absq,
              final DoubleRef f2absq, final double epsilon)
focal_class.class_method_signature: MullerNewtonSolver.convergence_check(final IntRef overflow,
              final double f1absq, final double f2absq, final double epsilon)
focal_class.full_signature: private void convergence_check(final IntRef overflow,
              final double f1absq, final double f2absq, final double epsilon)
focal_class.identifier: convergence_check
focal_class.modifiers: private
focal_class.parameters: (final IntRef overflow,
              final double f1absq, final double f2absq, final double epsilon)
focal_class.return: void
focal_class.signature: void convergence_check(final IntRef overflow,
              final double f1absq, final double f2absq, final double epsilon)
focal_class.class_method_signature: MullerNewtonSolver.factorize(final Polynomial p)
focal_class.full_signature: @Override public boolean factorize(final Polynomial p)
focal_class.identifier: factorize
focal_class.modifiers: @Override public
focal_class.parameters: (final Polynomial p)
focal_class.return: boolean
focal_class.signature: boolean factorize(final Polynomial p)
focal_class.class_method_signature: MullerNewtonSolver.initialize(final Ref<Complex> xb, final DoubleRef epsilon)
focal_class.full_signature: private void initialize(final Ref<Complex> xb, final DoubleRef epsilon)
focal_class.identifier: initialize
focal_class.modifiers: private
focal_class.parameters: (final Ref<Complex> xb, final DoubleRef epsilon)
focal_class.return: void
focal_class.signature: void initialize(final Ref<Complex> xb, final DoubleRef epsilon)
focal_class.class_method_signature: MullerNewtonSolver.iteration_equation(final DoubleRef h2abs)
focal_class.full_signature: private void iteration_equation(final DoubleRef h2abs)
focal_class.identifier: iteration_equation
focal_class.modifiers: private
focal_class.parameters: (final DoubleRef h2abs)
focal_class.return: void
focal_class.signature: void iteration_equation(final DoubleRef h2abs)
focal_class.class_method_signature: MullerNewtonSolver.lin_or_quad()
focal_class.full_signature: private boolean lin_or_quad()
focal_class.identifier: lin_or_quad
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean lin_or_quad()
focal_class.class_method_signature: MullerNewtonSolver.monic()
focal_class.full_signature: private void monic()
focal_class.identifier: monic
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void monic()
focal_class.class_method_signature: MullerNewtonSolver.muller()
focal_class.full_signature: private Complex muller()
focal_class.identifier: muller
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: Complex
focal_class.signature: Complex muller()
focal_class.class_method_signature: MullerNewtonSolver.newton(final Complex ns, final DoubleRef dxabs)
focal_class.full_signature: private Complex newton(final Complex ns, final DoubleRef dxabs)
focal_class.identifier: newton
focal_class.modifiers: private
focal_class.parameters: (final Complex ns, final DoubleRef dxabs)
focal_class.return: Complex
focal_class.signature: Complex newton(final Complex ns, final DoubleRef dxabs)
focal_class.class_method_signature: MullerNewtonSolver.newtonnull()
focal_class.full_signature: private boolean newtonnull()
focal_class.identifier: newtonnull
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean newtonnull()
focal_class.class_method_signature: MullerNewtonSolver.quadratic()
focal_class.full_signature: private void quadratic()
focal_class.identifier: quadratic
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void quadratic()
focal_class.class_method_signature: MullerNewtonSolver.remainder()
focal_class.full_signature: @Override public Polynomial remainder()
focal_class.identifier: remainder
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Polynomial
focal_class.signature: Polynomial remainder()
focal_class.class_method_signature: MullerNewtonSolver.root_check(final double f2absqb,
              final IntRef seconditer, final BooleanRef rootd,
              final IntRef noise, final Complex xb)
focal_class.full_signature: private void root_check(final double f2absqb,
              final IntRef seconditer, final BooleanRef rootd,
              final IntRef noise, final Complex xb)
focal_class.identifier: root_check
focal_class.modifiers: private
focal_class.parameters: (final double f2absqb,
              final IntRef seconditer, final BooleanRef rootd,
              final IntRef noise, final Complex xb)
focal_class.return: void
focal_class.signature: void root_check(final double f2absqb,
              final IntRef seconditer, final BooleanRef rootd,
              final IntRef noise, final Complex xb)
focal_class.class_method_signature: MullerNewtonSolver.root_of_parabola()
focal_class.full_signature: private void root_of_parabola()
focal_class.identifier: root_of_parabola
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void root_of_parabola()
focal_class.class_method_signature: MullerNewtonSolver.computeA2(Complex q2, Complex f2, Complex f0, Complex f1)
focal_class.full_signature: @VisibleForTesting static Complex computeA2(Complex q2, Complex f2, Complex f0, Complex f1)
focal_class.identifier: computeA2
focal_class.modifiers: @VisibleForTesting static
focal_class.parameters: (Complex q2, Complex f2, Complex f0, Complex f1)
focal_class.return: Complex
focal_class.signature: Complex computeA2(Complex q2, Complex f2, Complex f0, Complex f1)
focal_class.class_method_signature: MullerNewtonSolver.computeB2(Complex f2, Complex f1, Complex q2, Complex f0)
focal_class.full_signature: @VisibleForTesting static Complex computeB2(Complex f2, Complex f1, Complex q2, Complex f0)
focal_class.identifier: computeB2
focal_class.modifiers: @VisibleForTesting static
focal_class.parameters: (Complex f2, Complex f1, Complex q2, Complex f0)
focal_class.return: Complex
focal_class.signature: Complex computeB2(Complex f2, Complex f1, Complex q2, Complex f0)
focal_class.class_method_signature: MullerNewtonSolver.computeC2(Complex q2, Complex f2)
focal_class.full_signature: @VisibleForTesting static Complex computeC2(Complex q2, Complex f2)
focal_class.identifier: computeC2
focal_class.modifiers: @VisibleForTesting static
focal_class.parameters: (Complex q2, Complex f2)
focal_class.return: Complex
focal_class.signature: Complex computeC2(Complex q2, Complex f2)
focal_class.class_method_signature: MullerNewtonSolver.computeDiscr(Complex B2, Complex A2, Complex C2)
focal_class.full_signature: @VisibleForTesting static Complex computeDiscr(Complex B2, Complex A2, Complex C2)
focal_class.identifier: computeDiscr
focal_class.modifiers: @VisibleForTesting static
focal_class.parameters: (Complex B2, Complex A2, Complex C2)
focal_class.return: Complex
focal_class.signature: Complex computeDiscr(Complex B2, Complex A2, Complex C2)
focal_class.class_method_signature: MullerNewtonSolver.roots()
focal_class.full_signature: @Override public Complex[] roots()
focal_class.identifier: roots
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Complex[]
focal_class.signature: Complex[] roots()
focal_class.class_method_signature: MullerNewtonSolver.roots_at_zero()
focal_class.full_signature: private void roots_at_zero()
focal_class.identifier: roots_at_zero
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void roots_at_zero()
focal_class.class_method_signature: MullerNewtonSolver.suppress_overflow()
focal_class.full_signature: private void suppress_overflow()
focal_class.identifier: suppress_overflow
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void suppress_overflow()
focal_class.class_method_signature: MullerNewtonSolver.too_big_functionvalues(final DoubleRef f2absq)
focal_class.full_signature: private void too_big_functionvalues(final DoubleRef f2absq)
focal_class.identifier: too_big_functionvalues
focal_class.modifiers: private
focal_class.parameters: (final DoubleRef f2absq)
focal_class.return: void
focal_class.signature: void too_big_functionvalues(final DoubleRef f2absq)
focal_class.class_method_signature: MullerNewtonSolver.update(final Complex r0)
focal_class.full_signature: private void update(final Complex r0)
focal_class.identifier: update
focal_class.modifiers: private
focal_class.parameters: (final Complex r0)
focal_class.return: void
focal_class.signature: void update(final Complex r0)
focal_class.class_method_signature: MullerNewtonSolver.update(final double r0)
focal_class.full_signature: private void update(final double r0)
focal_class.identifier: update
focal_class.modifiers: private
focal_class.parameters: (final double r0)
focal_class.return: void
focal_class.signature: void update(final double r0)
focal_class.class_method_signature: MullerNewtonSolver.isLeastSquaresDivision()
focal_class.full_signature: public boolean isLeastSquaresDivision()
focal_class.identifier: isLeastSquaresDivision
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isLeastSquaresDivision()
focal_class.class_method_signature: MullerNewtonSolver.setLeastSquaresDivision(boolean lq)
focal_class.full_signature: public void setLeastSquaresDivision(boolean lq)
focal_class.identifier: setLeastSquaresDivision
focal_class.modifiers: public
focal_class.parameters: (boolean lq)
focal_class.return: void
focal_class.signature: void setLeastSquaresDivision(boolean lq)
focal_class.class_method_signature: MullerNewtonSolver.getComplexForIterationCounter(int iter)
focal_class.full_signature: private static Complex getComplexForIterationCounter(int iter)
focal_class.identifier: getComplexForIterationCounter
focal_class.modifiers: private static
focal_class.parameters: (int iter)
focal_class.return: Complex
focal_class.signature: Complex getComplexForIterationCounter(int iter)
focal_class.class_method_signature: MullerNewtonSolver.newComplexForIterationCounter(int iter)
focal_class.full_signature: private static Complex newComplexForIterationCounter(int iter)
focal_class.identifier: newComplexForIterationCounter
focal_class.modifiers: private static
focal_class.parameters: (int iter)
focal_class.return: Complex
focal_class.signature: Complex newComplexForIterationCounter(int iter)
focal_class.class_method_signature: MullerNewtonSolver.initComplexForIter(int maxIter)
focal_class.full_signature: private static Complex[] initComplexForIter(int maxIter)
focal_class.identifier: initComplexForIter
focal_class.modifiers: private static
focal_class.parameters: (int maxIter)
focal_class.return: Complex[]
focal_class.signature: Complex[] initComplexForIter(int maxIter)
focal_method.body: @VisibleForTesting
      static Complex computeDiscr(Complex B2, Complex A2, Complex C2) {
          double re0, re1;
          double im0, im1;
          /* { B2 B2 * } */
          re0 = B2.getRe() * B2.getRe() - B2.getIm() * B2.getIm();
          im0 = B2.getRe() * B2.getIm() + B2.getIm() * B2.getRe();
          /* { A2 C2 * } */
          re1 = A2.getRe() * C2.getRe() - A2.getIm() * C2.getIm();
          im1 = A2.getRe() * C2.getIm() + A2.getIm() * C2.getRe();
          /* { 4 * } */
          re1 *= 4;
          im1 *= 4;
          /* { - } */
          re0 -= re1;
          im0 -= im1;
          /* .build() */
          return Complex.cart(re0, im0);
      }
focal_method.class_method_signature: MullerNewtonSolver.computeDiscr(Complex B2, Complex A2, Complex C2)
focal_method.full_signature: @VisibleForTesting static Complex computeDiscr(Complex B2, Complex A2, Complex C2)
focal_method.identifier: computeDiscr
focal_method.invocations: getRe getRe getIm getIm getRe getIm getIm getRe getRe getRe getIm getIm getRe getIm getIm getRe cart
focal_method.modifiers: @VisibleForTesting static
focal_method.parameters: (Complex B2, Complex A2, Complex C2)
focal_method.return: Complex
focal_method.signature: Complex computeDiscr(Complex B2, Complex A2, Complex C2)