# NAME

Math::Orthonormalize - Gram-Schmidt Orthonormalization of vectors

# SYNOPSIS

```
use Math::Orthonormalize qw(:all);
my @base_of_r_2 = (
[2, 1],
[1, 3]
);
my $vector = [1, 2, 3];
my @orthonormalized = orthonormalize(@base_of_r_2);
my @orthogonalized = orthogonalize(@base_of_r_2);
my $normalized = normalize($vector);
my $scaled = scale(2, $vector);
my $scalar = scalar_product($vector1, $vector2);
```

# DESCRIPTION

Math::Orthonormalize offers subroutines to compute normalized or non-normalized orthogonal bases of Euclidean vector spaces. That means: Given a vector base of R^n, it computes a new base of R^n whose individual vectors are all orthogonal. If those new base vectors all have a length of 1, the base is orthonormalized.

The module uses the Gram-Schmidt Algorithm.

## EXPORT

No subroutines are exported by default, but the standart Exporter semantics are in place, including the ':all' tag that imports all of the exportable subroutines which are listed below.

# SUBROUTINES

## orthonormalize

Takes any number (>1) of vectors (array refs of vector components) as argument which form a base (that is, they are linearly independent) and returns an orthogonalized and normalized base of the same vector space (that is, n new array references).

## orthogonalize

Takes any number (>1) of vectors (array refs of vector components) as argument which form a base (that is, they are linearly independent) and returns an orthogonalized base of the same vector space (that is, n new array references).

## normalize

Normalizes a vector. That is, it changes the vector length to 1 without changing the vector's direction.

Takes an array reference with the vector components as argument and returns a new array reference containing the normalized vector components.

## scale

Takes a scalar and a vector (array reference of vector components) as arguments. Multiplies every component of the vector by the specified scalar and returns a new array reference containing the scaled vector components.

## scalar_product

Computes the scalar product of two vectors. Expects two array references with vector components (same number of components) as argument and returns their scalar product.

# AUTHOR

Steffen Mueller, orthonormalize-module at steffen-mueller dot net

# SEE ALSO

(German) Merziger, Wirth: "Repetitorium der Höheren Mathematik" (Binomi, 1999)

You may find the current versions of this module at http://steffen-mueller.net/ or on CPAN.

# COPYRIGHT AND LICENSE

Copyright (C) 2004-2005 by Steffen Mueller

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.6.1 or, at your option, any later version of Perl 5 you may have available.

1 POD Error

The following errors were encountered while parsing the POD:

- Around line 209:
Non-ASCII character seen before =encoding in 'Höheren'. Assuming ISO8859-1