Github user orhankislal commented on a diff in the pull request: https://github.com/apache/madlib/pull/229#discussion_r163120094 --- Diff: src/modules/convex/linear_svm_igd.cpp --- @@ -120,6 +124,100 @@ linear_svm_igd_transition::run(AnyType &args) { return state; } +/** + * @brief Perform the linear support vector machine transition step + * + * Called for each tuple. + */ +AnyType +linear_svm_igd_minibatch_transition::run(AnyType &args) { + // The real state. + // For the first tuple: args[0] is nothing more than a marker that + // indicates that we should do some initial operations. + // For other tuples: args[0] holds the computation state until last tuple + SVMMinibatchState<MutableArrayHandle<double> > state = args[0]; + + // initialize the state if first tuple + if (state.algo.numRows == 0) { + + LinearSVM<GLMModel, GLMTuple >::epsilon = args[9].getAs<double>();; + LinearSVM<GLMModel, GLMTuple >::is_svc = args[10].getAs<bool>();; + if (!args[3].isNull()) { + SVMMinibatchState<ArrayHandle<double> > previousState = args[3]; + state.allocate(*this, previousState.task.nFeatures); + state = previousState; + } else { + // configuration parameters + uint32_t dimension = args[4].getAs<uint32_t>(); + state.allocate(*this, dimension); // with zeros + } + // resetting in either case + // state.reset(); --- End diff -- We should remove these lines if we don't need them.
---