456 {
457 float x = value2.X;
458 float y = value2.Y;
459 float z = value2.Z;
460 float w = value2.W;
461 float x2 = value1.X;
462 float y2 = value1.Y;
463 float z2 = value1.Z;
464 float w2 = value1.W;
465 float num = y * z2 - z * y2;
466 float num2 = z * x2 - x * z2;
467 float num3 = x * y2 - y * x2;
468 float num4 = x * x2 + y * y2 + z * z2;
469 result.X = x * w2 + x2 * w + num;
470 result.Y = y * w2 + y2 * w + num2;
471 result.Z = z * w2 + z2 * w + num3;
472 result.W = w * w2 - num4;
473 }