Matrix3x3 Matrix3x3::operator*(f32 factor) const {
  Matrix3x3 ret;
  std::transform(begin(),end(),ret.begin(),
    [factor](f32 v)->f32{return v*factor;});
  return ret;
}
Matrix3x3 Matrix3x3::operator-(Matrix3x3 const& rhs) const {
  Matrix3x3 ret;
  std::transform(begin(),end(),rhs.begin(),ret.begin(),
    [](f32 a,f32 b)->f32{return a-b;});
  return ret;
}
Matrix3x3 Matrix3x3::operator-() const {
  Matrix3x3 ret;
  std::transform(begin(),end(),ret.begin(),[](f32 a)->f32{return -a;});
  return ret;
}
bool Matrix3x3::operator==(Matrix3x3 const& rhs) const {
  const bool ret=std::equal(begin(),end(),rhs.begin());
  return ret;
}