ftp.nice.ch/pub/next/unix/audio/line2sine.1.0.NI.bs.tar.gz#/line2sine/include/Vector.h

This is Vector.h in view mode; [Download] [Up]

//
// Programmer:    Craig Stuart Sapp <craig@ccrma.stanford.edu>
// Creation Date: Mon Apr 21 21:18:35 GMT-0800 1997
// Last Modified: Thu Sep 11 04:17:44 GMT-0800 1997
// Filename:      .../circleid/Vector.h
// Syntax:        C++ 
// $Smake:        cc -Wall -g -c %b.cc -I../../include && rm -f %b.o
//

#ifndef _VECTOR_H_INCLUDED
#define _VECTOR_H_INCLUDED

#include <iostream.h>
#include "ComplexD.h"

template<class type>
class Vector {
   public:
                      Vector           (void);
                      Vector           (int aDimension);
                      Vector           (type xx, type yy);
                      Vector           (type xx, type yy, type zz);
                      Vector           (const Vector<type>& aVector);
                     ~Vector           ();
      int             getDimension     (void) const;
      double          norm             (void);
      type&           operator[]       (int index);
      type            operator[]       (int index) const;
      Vector<type>&   operator=        (const Vector<type>& aVector);
      Vector<type>&   operator+=       (const Vector<type>& aVector);
      Vector<type>    operator+        (const Vector<type>& aVector) const;
      Vector<type>&   operator-=       (const Vector<type>& aVector);
      Vector<type>    operator-        (const Vector<type>& aVector) const;
      Vector<type>    operator-        (void) const;
      Vector<type>&   operator*=       (const Vector<type>& aVector);
      Vector<type>&   operator*=       (type aNumber);
      Vector<type>    operator*        (const Vector<type>& aVector) const;
      Vector<type>    operator*        (type aNumber) const;
      Vector<type>&   operator/=       (const Vector<type>& aVector);
      Vector<type>&   operator/=       (type aNumber);
      Vector<type>    operator/        (const Vector<type>& aVector) const;
      Vector<type>    operator/        (type aNumber) const;
      int             operator==       (Vector<type>& aVector);
      void            print            (void);
      void            setDimension     (int aDimension);
      type&           x                (void);
      type&           y                (void);
      type&           z                (void);
      void            zero             (type aValue = 0);

      friend ostream& operator<<(ostream& output, const Vector<type>& aVector);

   protected:
      int dimension;
      type* points;

};

template<class type>
ostream& operator<<(ostream& output, const Vector<type>& aVector);

template<class type>
Vector<type> operator*(type aNumber, Vector<type>& aVector);

#ifdef VISUAL
   #include "Vector.cpp"
#else
   // needed for the compiler version being used:
   #include "Vector.cc"
#endif


// Vector manipulation functions

template<class type>
type normSquare(const Vector<type>& aVector);

template<class type>
double norm(const Vector<type>& aVector);

/*
ComplexD ip(const Vector<ComplexD>& vector1, const Vector<ComplexD>& vector2);
*/

template<class type>
type ip(const Vector<type>& vector1, const Vector<type>& vector2);


template<class type>
Vector<type> midpoint(const Vector<type>& a, const Vector<type>& b);



#endif  _VECTOR_H_INCLUDED


These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.