
com.linkedin.dagli.util.function.DoubleComposedFunction2 Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of util-function Show documentation
Show all versions of util-function Show documentation
DAG-oriented machine learning framework for bug-resistant, readable, efficient, maintainable and trivially deployable models in Java and other JVM languages
// AUTOGENERATED CODE. DO NOT MODIFY DIRECTLY! Instead, please modify the util/function/ComposedFunction.ftl file.
// See the README in the module's src/template directory for details.
package com.linkedin.dagli.util.function;
import java.util.Objects;
/**
* A function class implementing {@link DoubleFunction2.Serializable} that composes
* {@link DoubleFunction2} with a {@link Function1}. The function is only actually serializable
* if its constituent composed functions are serializable, of course.
*/
class DoubleComposedFunction2 implements DoubleFunction2.Serializable {
private static final long serialVersionUID = 1;
private final Function2 _first;
private final DoubleFunction1 super Q> _andThen;
/**
* Creates a new instance that composes two functions, i.e. {@code andThen(first(inputs))}.
*
* @param first the first function to be called in the composition
* @param andThen the second function to be called in the composition, accepting the {@code first} functions result
* as input
*/
DoubleComposedFunction2(Function2 first, DoubleFunction1 super Q> andThen) {
_first = first;
_andThen = andThen;
}
@Override
@SuppressWarnings("unchecked")
public DoubleComposedFunction2 safelySerializable() {
return new DoubleComposedFunction2<>(((Function2.Serializable) _first).safelySerializable(),
((DoubleFunction1.Serializable super Q>) _andThen).safelySerializable());
}
@Override
public double apply(A value1, B value2) {
return _andThen.apply(_first.apply(value1, value2));
}
@Override
public int hashCode() {
return Objects.hash(DoubleComposedFunction2.class, _first, _andThen);
}
@Override
public boolean equals(Object obj) {
if (obj instanceof DoubleComposedFunction2) {
return this._first.equals(((DoubleComposedFunction2) obj)._first)
&& this._andThen.equals(((DoubleComposedFunction2) obj)._andThen);
}
return false;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy