Program for dot product and cross product of two vectors (original) (raw)

Last Updated : 29 Jul, 2024

There are two vector **A and **B and we have to find the dot product and cross product of two vector array. Dot product is also known as scalar product and cross product also known as vector product.
**Dot Product - Let we have given two vector **A = a1 * i + a2 * j + a3 * k and **B = b1 * i + b2 * j + b3 * k. Where i, j and k are the unit vector along the x, y and z directions. Then dot product is calculated as dot product = a1 * b1 + a2 * b2 + a3 * b3
**Example -

**A = 3 * i + 5 * j + 4 * k
**B = 2 * i + 7 * j + 5 * k
dot product = 3 * 2 + 5 * 7 + 4 * 5
= 6 + 35 + 20
= 61

**Cross Product - Let we have given two vector **A = a1 * i + a2 * j + a3 * k and **B = b1 * i + b2 * j + b3 * k. Then cross product is calculated as cross product = (a2 * b3 - a3 * b2) * i + (a3 * b1 - a1 * b3) * j + (a1 * b2 - a2 * b1) * k, where [(a2 * b3 - a3 * b2), (a3 * b1 - a1 * b3), (a1 * b2 - a2 * b1)] are the coefficient of unit vector along i, j and k directions.
**Example -

**A = 3 * i + 5 * j + 4 * k
**B = 2 * i + 7 * j + 5 * k
cross product
= (5 * 5 - 4 * 7) * i
+ (4 * 2 - 3 * 5) * j + (3 * 7 - 5 * 2) * k
= (-3)*i + (-7)*j + (11)*k

**Example -

**Input: vect_A[] = {3, -5, 4}
vect_B[] = {2, 6, 5}
**Output: Dot product: -4
Cross product = -49 -7 28

**Code-

C++ `

// C++ implementation for dot product // and cross product of two vector. #include <bits/stdc++.h> #define n 3

using namespace std;

// Function that return // dot product of two vector array. int dotProduct(int vect_A[], int vect_B[]) {

int product = 0;

// Loop for calculate dot product
for (int i = 0; i < n; i++)

    product = product + vect_A[i] * vect_B[i];
return product;

}

// Function to find // cross product of two vector array. void crossProduct(int vect_A[], int vect_B[], int cross_P[])

{

cross_P[0] = vect_A[1] * vect_B[2] - vect_A[2] * vect_B[1];
cross_P[1] = vect_A[2] * vect_B[0] - vect_A[0] * vect_B[2];
cross_P[2] = vect_A[0] * vect_B[1] - vect_A[1] * vect_B[0];

}

// Driver function int main() {

int vect_A[] = { 3, -5, 4 };
int vect_B[] = { 2, 6, 5 };
int cross_P[n];

// dotProduct function call
cout << "Dot product:";
cout << dotProduct(vect_A, vect_B) << endl;

// crossProduct function call
cout << "Cross product:";
crossProduct(vect_A, vect_B, cross_P);

// Loop that print
// cross product of two vector array.
for (int i = 0; i < n; i++)

    cout << cross_P[i] << " ";
return 0;

}

Java

// java implementation for dot product // and cross product of two vector. import java.io.*;

class GFG {

static int n = 3;

// Function that return
// dot product of two vector array.
static int dotProduct(int vect_A[], int vect_B[])
{

    int product = 0;

    // Loop for calculate dot product
    for (int i = 0; i < n; i++)
        product = product + vect_A[i] * vect_B[i];
    return product;
}

// Function to find
// cross product of two vector array.
static void crossProduct(int vect_A[], int vect_B[],
                         int cross_P[])

{

    cross_P[0] = vect_A[1] * vect_B[2]
                 - vect_A[2] * vect_B[1];
    cross_P[1] = vect_A[2] * vect_B[0]
                 - vect_A[0] * vect_B[2];
    cross_P[2] = vect_A[0] * vect_B[1]
                 - vect_A[1] * vect_B[0];
}

// Driver code
public static void main(String[] args)
{
    int vect_A[] = { 3, -5, 4 };
    int vect_B[] = { 2, 6, 5 };
    int cross_P[] = new int[n];

    // dotProduct function call
    System.out.print("Dot product:");
    System.out.println(dotProduct(vect_A, vect_B));

    // crossProduct function call
    System.out.print("Cross product:");
    crossProduct(vect_A, vect_B, cross_P);

    // Loop that print
    // cross product of two vector array.
    for (int i = 0; i < n; i++)

        System.out.print(cross_P[i] + " ");
}

}

// This code is contributed by vt_m

Python3

Python3 implementation for dot product

and cross product of two vector.

n = 3

Function that return

dot product of two vector array.

def dotProduct(vect_A, vect_B):

product = 0

# Loop for calculate dot product
for i in range(0, n):
    product = product + vect_A[i] * vect_B[i]

return product

Function to find

cross product of two vector array.

def crossProduct(vect_A, vect_B, cross_P):

cross_P.append(vect_A[1] * vect_B[2] - vect_A[2] * vect_B[1])
cross_P.append(vect_A[2] * vect_B[0] - vect_A[0] * vect_B[2])
cross_P.append(vect_A[0] * vect_B[1] - vect_A[1] * vect_B[0])

Driver function

if name=='main': vect_A = [3, -5, 4] vect_B = [2, 6, 5] cross_P = []

dotProduct function call

print("Dot product:", end =" ")
print(dotProduct(vect_A, vect_B))

crossProduct function call

print("Cross product:", end =" ")
crossProduct(vect_A, vect_B, cross_P)

Loop that print

cross product of two vector array.

for i in range(0, n):
    print(cross_P[i], end =" ")

This code is contributed by

Sanjit_Prasad

C#

// C# implementation for dot product // and cross product of two vector. using System;

class GFG {

static int n = 3;

// Function that return dot
// product of two vector array.
static int dotProduct(int[] vect_A,
                      int[] vect_B)
{

    int product = 0;

    // Loop for calculate dot product
    for (int i = 0; i < n; i++)
        product = product + vect_A[i] * vect_B[i];
    return product;
}

// Function to find cross product
// of two vector array.
static void crossProduct(int[] vect_A,
                         int[] vect_B, int[] cross_P)

{

    cross_P[0] = vect_A[1] * vect_B[2]
                 - vect_A[2] * vect_B[1];
    cross_P[1] = vect_A[2] * vect_B[0]
                 - vect_A[0] * vect_B[2];
    cross_P[2] = vect_A[0] * vect_B[1]
                 - vect_A[1] * vect_B[0];
}

// Driver code
public static void Main()
{
    int[] vect_A = { 3, -5, 4 };
    int[] vect_B = { 2, 6, 5 };
    int[] cross_P = new int[n];

    // dotProduct function call
    Console.Write("Dot product:");

    Console.WriteLine(
        dotProduct(vect_A, vect_B));

    // crossProduct function call
    Console.Write("Cross product:");
    crossProduct(vect_A, vect_B, cross_P);

    // Loop that print
    // cross product of two vector array.
    for (int i = 0; i < n; i++)
        Console.Write(cross_P[i] + " ");
}

}

// This code is contributed by vt_m.

JavaScript

PHP

i<i < i<n; $i++) product=product = product=product + vectA[vect_A[vectA[i] * vectB[vect_B[vectB[i]; return $product; } // Function to find // cross product of // two vector array. function crossproduct($vect_A, vectB,vect_B, vectB,cross_P) { crossP[0]=cross_P[0] = crossP[0]=vect_A[1] * $vect_B[2] - vectA[2]∗vect_A[2] * vectA[2]vect_B[1]; crossP[1]=cross_P[1] = crossP[1]=vect_A[2] * $vect_B[0] - vectA[0]∗vect_A[0] * vectA[0]vect_B[2]; crossP[2]=cross_P[2] = crossP[2]=vect_A[0] * $vect_B[1] - vectA[1]∗vect_A[1] * vectA[1]vect_B[0]; return $cross_P; } // Driver Code $vect_A = array( 3, -5, 4 ); $vect_B = array( 2, 6, 5 ); crossP=arrayfill(0,cross_P = array_fill(0, crossP=arrayfill(0,n, 0); // dotproduct function call echo "Dot product:"; echo dotproduct($vect_A, $vect_B); // crossproduct function call echo "\nCross product:"; crossP=crossproduct(cross_P = crossproduct(crossP=crossproduct(vect_A, $vect_B, $cross_P); // Loop that print // cross product of // two vector array. for ($i = 0; i<i < i<n; $i++) echo crossP[cross_P[crossP[i] . " "; // This code is contributed by mits ?>

`

Output

Dot product:-4 Cross product:-49 -7 28

**Time Complexity: O(3), the code will run in a constant time because the size of the arrays will be always 3.
**Auxiliary Space: O(3), no extra space is required, so it is a constant.