Class FullHessianUpdateStrategy.FullHessianUpdateStrategyFactory<T extends FullHessianUpdateStrategy.FullHessianUpdateStrategyFactory<T>>

java.lang.Object
de.labathome.trustconstr.FullHessianUpdateStrategy.FullHessianUpdateStrategyFactory<T>
Type Parameters:
T - concrete subclass type, returned by every parent setter
Direct Known Subclasses:
BFGS.BFGSFactory, SR1.SR1Factory
Enclosing class:
FullHessianUpdateStrategy

public static class FullHessianUpdateStrategy.FullHessianUpdateStrategyFactory<T extends FullHessianUpdateStrategy.FullHessianUpdateStrategyFactory<T>> extends Object
Shared base factory for BFGS.BFGSFactory and SR1.SR1Factory.

Generic over the self-type T so that fluent chains preserve the subclass type: a call like new BFGS.BFGSFactory().initalScale(0.5).exceptionStrategy(...).build() stays in the BFGSFactory type all the way through. Without the self-type, initalScale would return FullHessianUpdateStrategyFactory and the subsequent .exceptionStrategy(...).build() calls would not compile.

  • Field Details

    • initialScaleAuto

      protected boolean initialScaleAuto
      Whether the initial Hessian scale is auto-derived from the first step.
    • initialScale

      protected double initialScale
      User-specified initial scale, used when initialScaleAuto is false.
  • Constructor Details

    • FullHessianUpdateStrategyFactory

      protected FullHessianUpdateStrategyFactory()
      Default-construct: initial scale is auto-derived.
  • Method Details

    • self

      protected T self()
      Returns:
      this typed as the subclass T (fluent-self)
    • initialScaleAuto

      public T initialScaleAuto()
      Use the auto-derived initial scale (the default).
      Returns:
      this factory (typed as T), for chaining
      Throws:
      RuntimeException - if initalScale(double) was already called
    • initalScale

      public T initalScale(double initialScale)
      Pin the initial Hessian scale to a user-supplied value.
      Parameters:
      initialScale - scaling factor for the identity initialisation
      Returns:
      this factory (typed as T), for chaining
      Throws:
      RuntimeException - if initialScaleAuto() was already called