docs: public static void multiply(Transformation3D a, Transformation3D b,
  			Transformation3D result) {
  		double xx, yx, zx;
  		double xy, yy, zy;
  		double xz, yz, zz;
  		double xd, yd, zd;
  
  		xx = a.xx * b.xx + a.yx * b.xy + a.zx * b.xz;
  		yx = a.xx * b.yx + a.yx * b.yy + a.zx * b.yz;
  		zx = a.xx * b.zx + a.yx * b.zy + a.zx * b.zz;
  		xy = a.xy * b.xx + a.yy * b.xy + a.zy * b.xz;
  		yy = a.xy * b.yx + a.yy * b.yy + a.zy * b.yz;
  		zy = a.xy * b.zx + a.yy * b.zy + a.zy * b.zz;
  		xz = a.xz * b.xx + a.yz * b.xy + a.zz * b.xz;
  		yz = a.xz * b.yx + a.yz * b.yy + a.zz * b.yz;
  		zz = a.xz * b.zx + a.yz * b.zy + a.zz * b.zz;
  		xd = a.xd * b.xx + a.yd * b.xy + a.zd * b.xz + b.xd;
  		yd = a.xd * b.yx + a.yd * b.yy + a.zd * b.yz + b.yd;
  		zd = a.xd * b.zx + a.yd * b.zy + a.zd * b.zz + b.zd;
  
  		result.xx = xx;
  		result.yx = yx;
  		result.zx = zx;
  		result.xy = xy;
  		result.yy = yy;
  		result.zy = zy;
  		result.xz = xz;
  		result.yz = yz;
  		result.zz = zz;
  		result.xd = xd;
  		result.yd = yd;
  		result.zd = zd;
  	}