void Vector :: GetPart (int startpos, BaseVector & v2) const { Vector & hv2 = v2.CastToVector(); if (Length() >= startpos + v2.Length() - 1) { const double * p1 = &Get(startpos); double * p2 = &hv2.Elem(1); memcpy (p2, p1, hv2.Length() * sizeof(double)); } else MyError ("Vector::GetPart: Vector to short"); }
void Vector :: AddPart (int startpos, double val, const BaseVector & v2) { const Vector & hv2 = v2.CastToVector(); INDEX i; INDEX n = v2.Length(); if (Length() >= startpos + n - 1) { double * p1 = &Elem(startpos); const double * p2 = &hv2.Get(1); for (i = 1; i <= n; i++) { (*p1) += val * (*p2); p1++; p2++; } } else MyError ("Vector::AddPart: Vector to short"); }