// Copyright 2013 Thomas Müller
// This file is part of MarMoT, which is licensed under GPLv3.
package marmot.core;
public class ConcatFloatFeatureVector implements FloatFeatureVector {
private static final long serialVersionUID = 1L;
private FloatFeatureVector vec_;
private FloatFeatureVector vec2_;
private int dim_;
public ConcatFloatFeatureVector(FloatFeatureVector vec,
FloatFeatureVector vec2) {
vec_ = vec;
vec2_ = vec2;
dim_ = vec.getDim() + vec2.getDim();
}
@Override
public int getDim() {
return dim_;
}
@Override
public void updateFloatWeight(FloatWeights weights,
int tag_index, int offset, double update) {
vec_.updateFloatWeight(weights, tag_index, offset, update);
vec2_.updateFloatWeight(weights, tag_index, offset + vec_.getDim(), update);
}
@Override
public double getDotProduct(FloatWeights weights, int tag_index, int offset) {
return vec_.getDotProduct(weights, tag_index, offset)
+ vec2_.getDotProduct(weights, tag_index, offset + vec_.getDim());
}
}