hPDB-1.2.0.6: Protein Databank file format library

Safe HaskellSafe
LanguageHaskell98

Bio.PDB.Structure.Vector

Contents

Description

This module wraps 3D vector operations, and adds missing ones.

Synopsis

Documentation

data Vector3 :: * #

Constructors

Vector3 

Fields

  • v3x :: ~Scalar
     
  • v3y :: ~Scalar
     
  • v3z :: ~Scalar
     

Instances

Eq Vector3 

Methods

(==) :: Vector3 -> Vector3 -> Bool #

(/=) :: Vector3 -> Vector3 -> Bool #

Fractional Vector3 
Num Vector3 
Show Vector3 
Vector Vector3 
BasicVector Vector3 

Methods

vmap :: (Scalar -> Scalar) -> Vector3 -> Vector3

vzip :: (Scalar -> Scalar -> Scalar) -> Vector3 -> Vector3 -> Vector3

vfold :: (Scalar -> Scalar -> Scalar) -> Vector3 -> Scalar

vpack :: [Scalar] -> Maybe Vector3

vunpack :: Vector3 -> [Scalar]

vpromote :: Scalar -> Vector3

unpackVector3 :: Vector3 -> (Double, Double, Double) Source #

Unpacks an abstract 3D vector into a triple of Doubles.

vnormalise :: Vector3 -> Vector3 Source #

Normalises to a unit vector in the same direction as input.

vdot :: Vector3 -> Vector3 -> Double Source #

Computes a dot product of two 3D vectors.

(*|) :: Double -> Vector3 -> Vector3 Source #

Scalar product. (asterisk - "*" - indicates side on which one can put a scalar.)

(|*) :: Vector3 -> Double -> Vector3 Source #

Scalar product. (asterisk - "*" - indicates side on which one can put a scalar.)

vzip :: (Double -> Double -> Double) -> Vector3 -> Vector3 -> Vector3 Source #

Maps an operation on a pair of Doubles onto a pair of 3D vectors coordinatewise.

vmap :: (Double -> Double) -> Vector3 -> Vector3 Source #

Maps an operation that modifies a Double onto a 3D vector.

vnorm :: Vector3 -> Double Source #

2-norm of a vector (also called a magnitude or length.)

vproj :: Vector3 -> Vector3 -> Vector3 Source #

Finds a vector component of the first vector that is a projection onto direction of second vector.

vperpend :: Vector3 -> Vector3 -> Vector3 Source #

Returns a component of the vector v that is perpendicular to w.

vperpends :: Foldable t => Vector3 -> t Vector3 -> Vector3 Source #

Finds a component of the vector v that is perpendicular to all vectors in a list.

vdihedral :: Vector3 -> Vector3 -> Vector3 -> Double Source #

Compute dihedral between three bond vectors using spherical angle formula.

Orphan instances

Arbitrary Vector3 Source # 

Methods

arbitrary :: Gen Vector3

shrink :: Vector3 -> [Vector3]