AnyType linregr_merge_states::run(AnyType& args) { MutableLinRegrState stateLeft = args[0].getAs<MutableByteString>(); LinRegrState stateRight = args[1].getAs<ByteString>(); stateLeft << stateRight; return stateLeft.storage(); }
AnyType linregr_transition::run(AnyType& args) { MutableLinRegrState state = args[0].getAs<MutableByteString>(); double y = args[1].getAs<double>(); MappedColumnVector x = args[2].getAs<MappedColumnVector>(); state << MutableLinRegrState::tuple_type(x, y); return state.storage(); }
// ----------------------------------------------------------------------- // Linear regression // ----------------------------------------------------------------------- AnyType linregr_transition::run(AnyType& args) { MutableLinRegrState state = args[0].getAs<MutableByteString>(); if (args[1].isNull() || args[2].isNull()) { return args[0]; } double y = args[1].getAs<double>(); MappedColumnVector x; try { MappedColumnVector xx = args[2].getAs<MappedColumnVector>(); x.rebind(xx.memoryHandle(), xx.size()); } catch (const ArrayWithNullException &e) { return args[0]; } state << MutableLinRegrState::tuple_type(x, y); return state.storage(); }