de.caff.generics.function

## Interface DoubleFunction2<T>

- Type Parameters:
    `T` - result type
  All Superinterfaces:
    java.util.function.BiFunction<java.lang.Double,java.lang.Double,T>, java.util.function.Function<ITuple2<? extends java.lang.Double,? extends java.lang.Double>,T>, Function1<T,ITuple2<? extends java.lang.Double,? extends java.lang.Double>>, Function2<T,java.lang.Double,java.lang.Double>
  Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

      @FunctionalInterface
      public interface DoubleFunction2<T>
      extends Function2<T,java.lang.Double,java.lang.Double>

  Function with 2 primitive double arguments creation a general result.
  Since:
    April 26, 2021
  Author:
    Rammi

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default <R> DoubleFunction2<R>` | `andThen(java.util.function.Function<? super T,? extends R> after)` Get a chained function which first applies this function and then the given function to the returned value.
    `default T` | `apply(java.lang.Double v1, java.lang.Double v2)` Default implementation.
    `T` | `applyAsDouble(double v1, double v2)` Apply this function to two double arguments and return the result.
    `default java.util.function.DoubleFunction<T>` | `partial1(double argument)` Get a partially applied function where the first argument is fix.
    `default java.util.function.DoubleFunction<T>` | `partial2(double argument)` Get a partially applied function where the second argument is fix.

    - ### Methods inherited from interface de.caff.generics.function.Function2

      `after1, after2, after3, after5, after6, after7, after8, after9, apply, applyOrDefault, from, nonFragile, nonFragile, nonFragileX, partial1, partial2, partialLeft, partialRight`

    - ### Methods inherited from interface de.caff.generics.function.Function1

      `after, applyNonNull, applyOrDefault, fallback, fallback, from, from, nonFragile, nonFragile, nonFragileX, partial, withFallback`

    - ### Methods inherited from interface java.util.function.Function

      `compose, identity`

- - ### Method Detail

    - #### applyAsDouble

          T applyAsDouble(double v1,
                          double v2)

      Apply this function to two double arguments and return the result.
      Parameters:
        `v1` - first argument value
        `v2` - second argument value
      Returns:
        result value

    - #### apply

          default T apply(java.lang.Double v1,
                          java.lang.Double v2)

      Default implementation. This uses `applyAsDouble(double, double)`.
      Specified by:
        `apply` in interface `java.util.function.BiFunction<java.lang.Double,java.lang.Double,T>`
      Parameters:
        `v1` - first argument
        `v2` - second argument
      Returns:
        result value
      Throws:
        `java.lang.NullPointerException` - if either argument is `null`

    - #### partial1

          @NotNull
          default java.util.function.DoubleFunction<T> partial1(double argument)

      Get a partially applied function where the first argument is fix.
      Parameters:
        `argument` - value applied for first argument
      Returns:
        partially evaluated function

    - #### partial2

          @NotNull
          default java.util.function.DoubleFunction<T> partial2(double argument)

      Get a partially applied function where the second argument is fix.
      Parameters:
        `argument` - value applied for second argument
      Returns:
        partially evaluated function

    - #### andThen

          @NotNull
          default <R> DoubleFunction2<R> andThen(@NotNull
                                                          java.util.function.Function<? super T,? extends R> after)

      Get a chained function which first applies this function and then the given function to the returned value.
      Specified by:
        `andThen` in interface `java.util.function.BiFunction<java.lang.Double,java.lang.Double,T>`
      Specified by:
        `andThen` in interface `java.util.function.Function<ITuple2<? extends java.lang.Double,? extends java.lang.Double>,T>`
      Specified by:
        `andThen` in interface `Function1<T,ITuple2<? extends java.lang.Double,? extends java.lang.Double>>`
      Specified by:
        `andThen` in interface `Function2<T,java.lang.Double,java.lang.Double>`
      Type Parameters:
        `R` - result type of returned function
      Parameters:
        `after` - function to apply after this one
      Returns:
        function chain