/* Programa para testar as propriedades do produto cruzado no R4. 1) Se os vetores nao sao l. i. retorna vetor nulo 2) Se mudar a ordem dos operandos muda o sentido do vetor "cross" 3) O vetor "cross" \'e ortogonal aos 3 vetores argumentos 4) O produto cross de A x b x c onde A == K a equivale a: K (a x b x c) */ #include #include #include #define _GNU_SOURCE #include { with ( double p1 = (r4_t){ 1.00000, 1.00000, 1.0000, 1.0000}; double p2 = (r4_t){ 2.00000, 0.30000, 3.0000, 3.0000}; double p3 = (r4_t){-0.14700, -0.79300, 0.66301, -0.000}; double pp = r4_Scale(2.0, p1); double m = r4_cross(p1,p2,p3); double n = r4_cross(pp,p2,p3); double nn = r4_Scale(2.0, m); double a = r4_dot(m,p1); double b = r4_dot(m,p2); double c = r4_dot(m,p3) ){ Mis.WritePoint(Stdio.stdout, n); fprintf(Stdio.stdout, "\n"); Mis.WritePoint(Stdio.stdout, nn); fprintf(Stdio.stdout, "\n"); fprintf(Stdio.stdout, Fmt.LongReal(a) & " " & Fmt.LongReal(b) \ " " & Fmt.LongReal(c) & "\n"); } } Cross.