learn-physics-0.5.2: Haskell code for learning physics

Copyright(c) Scott N. Walck 2012-2014
LicenseBSD3 (see LICENSE)
MaintainerScott N. Walck <walck@lvc.edu>
Stabilityexperimental
Safe HaskellSafe
LanguageHaskell98

Physics.Learn.SimpleVec

Description

Basic operations on the vector type Vec, such as vector addition and scalar multiplication. This module is simple in the sense that the operations on vectors all have simple, concrete types, without the need for type classes. This makes using and reasoning about vector operations easier for a person just learning Haskell.

Synopsis

Documentation

data Vec Source

A type for vectors.

xComp :: Vec -> Double Source

x component

yComp :: Vec -> Double Source

y component

zComp :: Vec -> Double Source

z component

vec Source

Arguments

:: Double

x component

-> Double

y component

-> Double

z component

-> Vec 

Form a vector by giving its x, y, and z components.

(^+^) :: Vec -> Vec -> Vec infixl 6 Source

Vector addition.

(^-^) :: Vec -> Vec -> Vec infixl 6 Source

Vector subtraction.

(*^) :: Double -> Vec -> Vec infixl 7 Source

Scalar multiplication, where the scalar is on the left and the vector is on the right.

(^*) :: Vec -> Double -> Vec infixl 7 Source

Scalar multiplication, where the scalar is on the right and the vector is on the left.

(^/) :: Vec -> Double -> Vec infixl 7 Source

Division of a vector by a scalar.

(<.>) :: Vec -> Vec -> Double infixl 7 Source

Dot product of two vectors.

(><) :: Vec -> Vec -> Vec infixl 7 Source

Cross product.

magnitude :: Vec -> Double Source

Magnitude of a vector.

zeroV :: Vec Source

The zero vector.

negateV :: Vec -> Vec Source

The additive inverse of a vector.

sumV :: [Vec] -> Vec Source

Sum of a list of vectors.

iHat :: Vec Source

Unit vector in the x direction.

jHat :: Vec Source

Unit vector in the y direction.

kHat :: Vec Source

Unit vector in the z direction.