octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

MSVC compiler support [patch 16]: liboctave exported symbols


From: Michael Goffioul
Subject: MSVC compiler support [patch 16]: liboctave exported symbols
Date: Tue, 17 Oct 2006 21:50:46 +0200
User-agent: Thunderbird 1.5.0.7 (Windows/20060909)

Defines symbols exported by octave DLL.

Index: liboctave/Array-C.cc
===================================================================
RCS file: /cvs/octave/liboctave/Array-C.cc,v
retrieving revision 1.21
diff -p -c -r1.21 Array-C.cc
*** liboctave/Array-C.cc        26 Apr 2005 19:24:27 -0000      1.21
--- liboctave/Array-C.cc        17 Oct 2006 11:07:41 -0000
*************** INSTANTIATE_ARRAY_ASSIGN (Complex, char)
*** 41,59 ****
  
  #include "Array2.h"
  
! template class Array2<Complex>;
  
  #include "ArrayN.h"
  #include "ArrayN.cc"
  
! template class ArrayN<Complex>;
  
! template std::ostream& operator << (std::ostream&, const ArrayN<Complex>&);
  
  #include "DiagArray2.h"
  #include "DiagArray2.cc"
  
! template class DiagArray2<Complex>;
  
  /*
  ;;; Local Variables: ***
--- 41,59 ----
  
  #include "Array2.h"
  
! template class OCTAVE_API Array2<Complex>;
  
  #include "ArrayN.h"
  #include "ArrayN.cc"
  
! template class OCTAVE_API ArrayN<Complex>;
  
! template OCTAVE_API std::ostream& operator << (std::ostream&, const 
ArrayN<Complex>&);
  
  #include "DiagArray2.h"
  #include "DiagArray2.cc"
  
! template class OCTAVE_API DiagArray2<Complex>;
  
  /*
  ;;; Local Variables: ***
Index: liboctave/Array-b.cc
===================================================================
RCS file: /cvs/octave/liboctave/Array-b.cc,v
retrieving revision 1.10
diff -p -c -r1.10 Array-b.cc
*** liboctave/Array-b.cc        26 Apr 2005 19:24:27 -0000      1.10
--- liboctave/Array-b.cc        17 Oct 2006 11:07:41 -0000
*************** INSTANTIATE_ARRAY_AND_ASSIGN (bool);
*** 34,52 ****
  
  #include "Array2.h"
  
! template class Array2<bool>;
  
  #include "ArrayN.h"
  #include "ArrayN.cc"
  
! template class ArrayN<bool>;
  
! template std::ostream& operator << (std::ostream&, const ArrayN<bool>&);
  
  #include "DiagArray2.h"
  #include "DiagArray2.cc"
  
! template class DiagArray2<bool>;
  
  /*
  ;;; Local Variables: ***
--- 34,52 ----
  
  #include "Array2.h"
  
! template class OCTAVE_API Array2<bool>;
  
  #include "ArrayN.h"
  #include "ArrayN.cc"
  
! template class OCTAVE_API ArrayN<bool>;
  
! template OCTAVE_API std::ostream& operator << (std::ostream&, const 
ArrayN<bool>&);
  
  #include "DiagArray2.h"
  #include "DiagArray2.cc"
  
! template class OCTAVE_API DiagArray2<bool>;
  
  /*
  ;;; Local Variables: ***
Index: liboctave/Array-ch.cc
===================================================================
RCS file: /cvs/octave/liboctave/Array-ch.cc,v
retrieving revision 1.17
diff -p -c -r1.17 Array-ch.cc
*** liboctave/Array-ch.cc       26 Apr 2005 19:24:27 -0000      1.17
--- liboctave/Array-ch.cc       17 Oct 2006 11:07:41 -0000
*************** INSTANTIATE_ARRAY_AND_ASSIGN (char);
*** 34,52 ****
  
  #include "Array2.h"
  
! template class Array2<char>;
  
  #include "ArrayN.h"
  #include "ArrayN.cc"
  
! template class ArrayN<char>;
  
! template std::ostream& operator << (std::ostream&, const ArrayN<char>&);
  
  #include "DiagArray2.h"
  #include "DiagArray2.cc"
  
! template class DiagArray2<char>;
  
  /*
  ;;; Local Variables: ***
--- 34,52 ----
  
  #include "Array2.h"
  
! template class OCTAVE_API Array2<char>;
  
  #include "ArrayN.h"
  #include "ArrayN.cc"
  
! template class OCTAVE_API ArrayN<char>;
  
! template OCTAVE_API std::ostream& operator << (std::ostream&, const 
ArrayN<char>&);
  
  #include "DiagArray2.h"
  #include "DiagArray2.cc"
  
! template class OCTAVE_API DiagArray2<char>;
  
  /*
  ;;; Local Variables: ***
Index: liboctave/Array-i.cc
===================================================================
RCS file: /cvs/octave/liboctave/Array-i.cc,v
retrieving revision 1.19
diff -p -c -r1.19 Array-i.cc
*** liboctave/Array-i.cc        26 Apr 2005 19:24:27 -0000      1.19
--- liboctave/Array-i.cc        17 Oct 2006 11:07:41 -0000
*************** INSTANTIATE_ARRAY_AND_ASSIGN (octave_uin
*** 50,61 ****
  
  #include "Array2.h"
  
! template class Array2<int>;
  
  #include "DiagArray2.h"
  #include "DiagArray2.cc"
  
! template class DiagArray2<int>;
  
  /*
  ;;; Local Variables: ***
--- 50,61 ----
  
  #include "Array2.h"
  
! template class OCTAVE_API Array2<int>;
  
  #include "DiagArray2.h"
  #include "DiagArray2.cc"
  
! template class OCTAVE_API DiagArray2<int>;
  
  /*
  ;;; Local Variables: ***
Index: liboctave/Array-util.h
===================================================================
RCS file: /cvs/octave/liboctave/Array-util.h,v
retrieving revision 1.8
diff -p -c -r1.8 Array-util.h
*** liboctave/Array-util.h      8 Feb 2006 18:56:54 -0000       1.8
--- liboctave/Array-util.h      17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 31,91 ****
  #include "idx-vector.h"
  #include "lo-error.h"
  
! extern bool index_in_bounds (const Array<octave_idx_type>& ra_idx,
                             const dim_vector& dimensions);
  
! extern void increment_index (Array<octave_idx_type>& ra_idx,
                             const dim_vector& dimensions,
                             int start_dimension = 0);
  
! extern octave_idx_type get_scalar_idx (Array<octave_idx_type>& idx, 
dim_vector& dims);
  
! extern octave_idx_type num_ones (const Array<octave_idx_type>& ra_idx);
  
! extern bool is_scalar (const dim_vector& dim);
  
! extern bool any_ones (const Array<octave_idx_type>& arr);
  
! extern octave_idx_type compute_index (const Array<octave_idx_type>& ra_idx, 
const dim_vector& dims);
  
! extern Array<octave_idx_type> conv_to_int_array (const Array<idx_vector>& a);
  
! extern Array<idx_vector> conv_to_array (const idx_vector *tmp, const 
octave_idx_type len);
  
! extern dim_vector freeze (Array<idx_vector>& ra_idx,
                          const dim_vector& dimensions, int resize_ok);
  
! extern bool vector_equivalent (const dim_vector& dv);
  
! extern bool all_ok (const Array<idx_vector>& ra_idx);
  
! extern bool any_orig_empty (const Array<idx_vector>& ra_idx);
  
! extern bool all_colon_equiv (const Array<idx_vector>& ra_idx,
                             const dim_vector& frozen_lengths);
  
! extern bool is_in (octave_idx_type num, const idx_vector& idx);
  
! extern octave_idx_type how_many_lgt (const octave_idx_type num, idx_vector& 
idxv);
  
! extern bool all_ones (const Array<octave_idx_type>& arr);
  
! extern Array<octave_idx_type> get_elt_idx (const Array<idx_vector>& ra_idx,
                               const Array<octave_idx_type>& result_idx);
  
! extern Array<octave_idx_type> get_ra_idx (octave_idx_type idx, const 
dim_vector& dims);
  
! extern dim_vector short_freeze (Array<idx_vector>& ra_idx,
                                const dim_vector& dimensions,
                                int resize_ok);
  
! extern void gripe_nonconformant (const char *op, int op1_len, int op2_len);
  
! extern void gripe_nonconformant (const char *op, int op1_nr, int op1_nc,
                                 int op2_nr, int op2_nc);
  
  
! extern void gripe_nonconformant (const char *op, dim_vector& op1_dims,
                                 dim_vector& op2_dims);
  
  #endif
--- 31,91 ----
  #include "idx-vector.h"
  #include "lo-error.h"
  
! extern OCTAVE_API bool index_in_bounds (const Array<octave_idx_type>& ra_idx,
                             const dim_vector& dimensions);
  
! extern OCTAVE_API void increment_index (Array<octave_idx_type>& ra_idx,
                             const dim_vector& dimensions,
                             int start_dimension = 0);
  
! extern OCTAVE_API octave_idx_type get_scalar_idx (Array<octave_idx_type>& 
idx, dim_vector& dims);
  
! extern OCTAVE_API octave_idx_type num_ones (const Array<octave_idx_type>& 
ra_idx);
  
! extern OCTAVE_API bool is_scalar (const dim_vector& dim);
  
! extern OCTAVE_API bool any_ones (const Array<octave_idx_type>& arr);
  
! extern OCTAVE_API octave_idx_type compute_index (const 
Array<octave_idx_type>& ra_idx, const dim_vector& dims);
  
! extern OCTAVE_API Array<octave_idx_type> conv_to_int_array (const 
Array<idx_vector>& a);
  
! extern OCTAVE_API Array<idx_vector> conv_to_array (const idx_vector *tmp, 
const octave_idx_type len);
  
! extern OCTAVE_API dim_vector freeze (Array<idx_vector>& ra_idx,
                          const dim_vector& dimensions, int resize_ok);
  
! extern OCTAVE_API bool vector_equivalent (const dim_vector& dv);
  
! extern OCTAVE_API bool all_ok (const Array<idx_vector>& ra_idx);
  
! extern OCTAVE_API bool any_orig_empty (const Array<idx_vector>& ra_idx);
  
! extern OCTAVE_API bool all_colon_equiv (const Array<idx_vector>& ra_idx,
                             const dim_vector& frozen_lengths);
  
! extern OCTAVE_API bool is_in (octave_idx_type num, const idx_vector& idx);
  
! extern OCTAVE_API octave_idx_type how_many_lgt (const octave_idx_type num, 
idx_vector& idxv);
  
! extern OCTAVE_API bool all_ones (const Array<octave_idx_type>& arr);
  
! extern OCTAVE_API Array<octave_idx_type> get_elt_idx (const 
Array<idx_vector>& ra_idx,
                               const Array<octave_idx_type>& result_idx);
  
! extern OCTAVE_API Array<octave_idx_type> get_ra_idx (octave_idx_type idx, 
const dim_vector& dims);
  
! extern OCTAVE_API dim_vector short_freeze (Array<idx_vector>& ra_idx,
                                const dim_vector& dimensions,
                                int resize_ok);
  
! extern void OCTAVE_API gripe_nonconformant (const char *op, int op1_len, int 
op2_len);
  
! extern void OCTAVE_API gripe_nonconformant (const char *op, int op1_nr, int 
op1_nc,
                                 int op2_nr, int op2_nc);
  
  
! extern void OCTAVE_API gripe_nonconformant (const char *op, dim_vector& 
op1_dims,
                                 dim_vector& op2_dims);
  
  #endif
Index: liboctave/Array.h
===================================================================
RCS file: /cvs/octave/liboctave/Array.h,v
retrieving revision 1.97
diff -p -c -r1.97 Array.h
*** liboctave/Array.h   22 Jul 2006 08:31:16 -0000      1.97
--- liboctave/Array.h   17 Oct 2006 11:07:41 -0000
*************** assign (Array<LT>& lhs, const Array<RT>&
*** 570,585 ****
  }
  
  #define INSTANTIATE_ARRAY_ASSIGN(LT, RT) \
!   template int assign (Array<LT>&, const Array<RT>&, const LT&); \
!   template int assign1 (Array<LT>&, const Array<RT>&, const LT&); \
!   template int assign2 (Array<LT>&, const Array<RT>&, const LT&); \
!   template int assignN (Array<LT>&, const Array<RT>&, const LT&); \
!   template int assign (Array<LT>&, const Array<RT>&)
  
  
  #define INSTANTIATE_ARRAY(T) \
!   template class Array<T>; \
!   template T resize_fill_value (const T&); \
  
  #define INSTANTIATE_ARRAY_AND_ASSIGN(T) \
    INSTANTIATE_ARRAY (T); \
--- 570,585 ----
  }
  
  #define INSTANTIATE_ARRAY_ASSIGN(LT, RT) \
!   template OCTAVE_API int assign (Array<LT>&, const Array<RT>&, const LT&); \
!   template OCTAVE_API int assign1 (Array<LT>&, const Array<RT>&, const LT&); \
!   template OCTAVE_API int assign2 (Array<LT>&, const Array<RT>&, const LT&); \
!   template OCTAVE_API int assignN (Array<LT>&, const Array<RT>&, const LT&); \
!   template OCTAVE_API int assign (Array<LT>&, const Array<RT>&)
  
  
  #define INSTANTIATE_ARRAY(T) \
!   template class OCTAVE_API Array<T>; \
!   template OCTAVE_API T resize_fill_value (const T&); \
  
  #define INSTANTIATE_ARRAY_AND_ASSIGN(T) \
    INSTANTIATE_ARRAY (T); \
Index: liboctave/CColVector.h
===================================================================
RCS file: /cvs/octave/liboctave/CColVector.h,v
retrieving revision 1.26
diff -p -c -r1.26 CColVector.h
*** liboctave/CColVector.h      26 Apr 2005 19:24:27 -0000      1.26
--- liboctave/CColVector.h      17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "mx-defs.h"
  
  class
+ OCTAVE_API
  ComplexColumnVector : public MArray<Complex>
  {
  friend class ComplexMatrix;
Index: liboctave/CMatrix.h
===================================================================
RCS file: /cvs/octave/liboctave/CMatrix.h,v
retrieving revision 1.59
diff -p -c -r1.59 CMatrix.h
*** liboctave/CMatrix.h 23 Aug 2006 18:35:38 -0000      1.59
--- liboctave/CMatrix.h 17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 33,38 ****
--- 33,39 ----
  #include "oct-cmplx.h"
  
  class
+ OCTAVE_API
  ComplexMatrix : public MArray2<Complex>
  {
  public:
*************** public:
*** 319,326 ****
  
    // i/o
  
!   friend std::ostream& operator << (std::ostream& os, const ComplexMatrix& a);
!   friend std::istream& operator >> (std::istream& is, ComplexMatrix& a);
  
    static Complex resize_fill_value (void) { return Complex (0.0, 0.0); }
  
--- 320,327 ----
  
    // i/o
  
!   friend OCTAVE_API std::ostream& operator << (std::ostream& os, const 
ComplexMatrix& a);
!   friend OCTAVE_API std::istream& operator >> (std::istream& is, 
ComplexMatrix& a);
  
    static Complex resize_fill_value (void) { return Complex (0.0, 0.0); }
  
*************** private:
*** 331,362 ****
  
  // column vector by row vector -> matrix operations
  
! extern ComplexMatrix
  operator * (const ColumnVector& a, const ComplexRowVector& b);
  
! extern ComplexMatrix
  operator * (const ComplexColumnVector& a, const RowVector& b);
  
! extern ComplexMatrix
  operator * (const ComplexColumnVector& a, const ComplexRowVector& b);
  
! extern ComplexMatrix
  Givens (const Complex&, const Complex&);
  
! extern ComplexMatrix
  Sylvester (const ComplexMatrix&, const ComplexMatrix&, const ComplexMatrix&);
  
! extern ComplexMatrix operator * (const Matrix&,        const ComplexMatrix&);
! extern ComplexMatrix operator * (const ComplexMatrix&, const Matrix&);
! extern ComplexMatrix operator * (const ComplexMatrix&, const ComplexMatrix&);
! 
! extern ComplexMatrix min (const Complex& c, const ComplexMatrix& m);
! extern ComplexMatrix min (const ComplexMatrix& m, const Complex& c);
! extern ComplexMatrix min (const ComplexMatrix& a, const ComplexMatrix& b);
! 
! extern ComplexMatrix max (const Complex& c, const ComplexMatrix& m);
! extern ComplexMatrix max (const ComplexMatrix& m, const Complex& c);
! extern ComplexMatrix max (const ComplexMatrix& a, const ComplexMatrix& b);
  
  MS_CMP_OP_DECLS (ComplexMatrix, Complex)
  MS_BOOL_OP_DECLS (ComplexMatrix, Complex)
--- 332,363 ----
  
  // column vector by row vector -> matrix operations
  
! extern OCTAVE_API ComplexMatrix
  operator * (const ColumnVector& a, const ComplexRowVector& b);
  
! extern OCTAVE_API ComplexMatrix
  operator * (const ComplexColumnVector& a, const RowVector& b);
  
! extern OCTAVE_API ComplexMatrix
  operator * (const ComplexColumnVector& a, const ComplexRowVector& b);
  
! extern OCTAVE_API ComplexMatrix
  Givens (const Complex&, const Complex&);
  
! extern OCTAVE_API ComplexMatrix
  Sylvester (const ComplexMatrix&, const ComplexMatrix&, const ComplexMatrix&);
  
! extern OCTAVE_API ComplexMatrix operator * (const Matrix&,        const 
ComplexMatrix&);
! extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&, const 
Matrix&);
! extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&, const 
ComplexMatrix&);
! 
! extern OCTAVE_API ComplexMatrix min (const Complex& c, const ComplexMatrix& 
m);
! extern OCTAVE_API ComplexMatrix min (const ComplexMatrix& m, const Complex& 
c);
! extern OCTAVE_API ComplexMatrix min (const ComplexMatrix& a, const 
ComplexMatrix& b);
! 
! extern OCTAVE_API ComplexMatrix max (const Complex& c, const ComplexMatrix& 
m);
! extern OCTAVE_API ComplexMatrix max (const ComplexMatrix& m, const Complex& 
c);
! extern OCTAVE_API ComplexMatrix max (const ComplexMatrix& a, const 
ComplexMatrix& b);
  
  MS_CMP_OP_DECLS (ComplexMatrix, Complex)
  MS_BOOL_OP_DECLS (ComplexMatrix, Complex)
Index: liboctave/CNDArray.h
===================================================================
RCS file: /cvs/octave/liboctave/CNDArray.h,v
retrieving revision 1.24
diff -p -c -r1.24 CNDArray.h
*** liboctave/CNDArray.h        24 Apr 2006 19:13:07 -0000      1.24
--- liboctave/CNDArray.h        17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 31,36 ****
--- 31,37 ----
  #include "mx-op-defs.h"
  
  class
+ OCTAVE_API
  ComplexNDArray : public MArrayN<Complex>
  {
  public:
*************** public:
*** 108,115 ****
  
    // i/o
  
!   friend std::ostream& operator << (std::ostream& os, const ComplexNDArray& 
a);
!   friend std::istream& operator >> (std::istream& is, ComplexNDArray& a);
  
    static Complex resize_fill_value (void) { return Complex (0.0, 0.0); }
  
--- 109,116 ----
  
    // i/o
  
!   friend OCTAVE_API std::ostream& operator << (std::ostream& os, const 
ComplexNDArray& a);
!   friend OCTAVE_API std::istream& operator >> (std::istream& is, 
ComplexNDArray& a);
  
    static Complex resize_fill_value (void) { return Complex (0.0, 0.0); }
  
*************** private:
*** 122,134 ****
      : MArrayN<Complex> (d, dv) { }
  };
  
! extern ComplexNDArray min (const Complex& c, const ComplexNDArray& m);
! extern ComplexNDArray min (const ComplexNDArray& m, const Complex& c);
! extern ComplexNDArray min (const ComplexNDArray& a, const ComplexNDArray& b);
! 
! extern ComplexNDArray max (const Complex& c, const ComplexNDArray& m);
! extern ComplexNDArray max (const ComplexNDArray& m, const Complex& c);
! extern ComplexNDArray max (const ComplexNDArray& a, const ComplexNDArray& b);
  
  NDS_CMP_OP_DECLS (ComplexNDArray, Complex)
  NDS_BOOL_OP_DECLS (ComplexNDArray, Complex)
--- 123,135 ----
      : MArrayN<Complex> (d, dv) { }
  };
  
! extern OCTAVE_API ComplexNDArray min (const Complex& c, const ComplexNDArray& 
m);
! extern OCTAVE_API ComplexNDArray min (const ComplexNDArray& m, const Complex& 
c);
! extern OCTAVE_API ComplexNDArray min (const ComplexNDArray& a, const 
ComplexNDArray& b);
! 
! extern OCTAVE_API ComplexNDArray max (const Complex& c, const ComplexNDArray& 
m);
! extern OCTAVE_API ComplexNDArray max (const ComplexNDArray& m, const Complex& 
c);
! extern OCTAVE_API ComplexNDArray max (const ComplexNDArray& a, const 
ComplexNDArray& b);
  
  NDS_CMP_OP_DECLS (ComplexNDArray, Complex)
  NDS_BOOL_OP_DECLS (ComplexNDArray, Complex)
Index: liboctave/CRowVector.h
===================================================================
RCS file: /cvs/octave/liboctave/CRowVector.h,v
retrieving revision 1.28
diff -p -c -r1.28 CRowVector.h
*** liboctave/CRowVector.h      26 Apr 2005 19:24:27 -0000      1.28
--- liboctave/CRowVector.h      17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "mx-defs.h"
  
  class
+ OCTAVE_API
  ComplexRowVector : public MArray<Complex>
  {
  friend class ComplexColumnVector;
*************** Complex operator * (const ComplexRowVect
*** 121,127 ****
  
  // other operations
  
! ComplexRowVector linspace (const Complex& x1, const Complex& x2, 
octave_idx_type n);
  
  MARRAY_FORWARD_DEFS (MArray, ComplexRowVector, Complex)
  
--- 122,128 ----
  
  // other operations
  
! OCTAVE_API ComplexRowVector linspace (const Complex& x1, const Complex& x2, 
octave_idx_type n);
  
  MARRAY_FORWARD_DEFS (MArray, ComplexRowVector, Complex)
  
Index: liboctave/CSparse.h
===================================================================
RCS file: /cvs/octave/liboctave/CSparse.h,v
retrieving revision 1.11
diff -p -c -r1.11 CSparse.h
*** liboctave/CSparse.h 3 May 2006 19:32:46 -0000       1.11
--- liboctave/CSparse.h 17 Oct 2006 11:07:41 -0000
*************** class SparseMatrix;
*** 40,45 ****
--- 40,46 ----
  class SparseBoolMatrix;
  
  class
+ OCTAVE_API
  SparseComplexMatrix : public MSparse<Complex>
  {
  public:
*************** public:
*** 421,465 ****
    SparseComplexMatrix diag (octave_idx_type k = 0) const;
  
    // i/o
!   friend std::ostream& operator << (std::ostream& os, 
                                    const SparseComplexMatrix& a);
!   friend std::istream& operator >> (std::istream& is, 
                                    SparseComplexMatrix& a);
  };
  
! extern SparseComplexMatrix operator * (const SparseMatrix&,        
                                       const SparseComplexMatrix&);
! extern SparseComplexMatrix operator * (const SparseComplexMatrix&, 
                                       const SparseMatrix&);
! extern SparseComplexMatrix operator * (const SparseComplexMatrix&, 
                                       const SparseComplexMatrix&);
  
! extern ComplexMatrix operator * (const Matrix&,        
                                       const SparseComplexMatrix&);
! extern ComplexMatrix operator * (const ComplexMatrix&, 
                                       const SparseMatrix&);
! extern ComplexMatrix operator * (const ComplexMatrix&, 
                                       const SparseComplexMatrix&);
  
! extern ComplexMatrix operator * (const SparseMatrix&,        
                                       const ComplexMatrix&);
! extern ComplexMatrix operator * (const SparseComplexMatrix&, 
                                       const Matrix&);
! extern ComplexMatrix operator * (const SparseComplexMatrix&, 
                                       const ComplexMatrix&);
  
! extern SparseComplexMatrix min (const Complex& c, 
                                const SparseComplexMatrix& m);
! extern SparseComplexMatrix min (const SparseComplexMatrix& m, 
                                const Complex& c);
! extern SparseComplexMatrix min (const SparseComplexMatrix& a, 
                                const SparseComplexMatrix& b);
  
! extern SparseComplexMatrix max (const Complex& c, 
                                const SparseComplexMatrix& m);
! extern SparseComplexMatrix max (const SparseComplexMatrix& m, 
                                const Complex& c);
! extern SparseComplexMatrix max (const SparseComplexMatrix& a, 
                                const SparseComplexMatrix& b);
  
  SPARSE_SMS_CMP_OP_DECLS (SparseComplexMatrix, Complex)
--- 422,466 ----
    SparseComplexMatrix diag (octave_idx_type k = 0) const;
  
    // i/o
!   friend OCTAVE_API std::ostream& operator << (std::ostream& os, 
                                    const SparseComplexMatrix& a);
!   friend OCTAVE_API std::istream& operator >> (std::istream& is, 
                                    SparseComplexMatrix& a);
  };
  
! extern OCTAVE_API SparseComplexMatrix operator * (const SparseMatrix&,        
                                       const SparseComplexMatrix&);
! extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, 
                                       const SparseMatrix&);
! extern OCTAVE_API SparseComplexMatrix operator * (const SparseComplexMatrix&, 
                                       const SparseComplexMatrix&);
  
! extern OCTAVE_API ComplexMatrix operator * (const Matrix&,        
                                       const SparseComplexMatrix&);
! extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&, 
                                       const SparseMatrix&);
! extern OCTAVE_API ComplexMatrix operator * (const ComplexMatrix&, 
                                       const SparseComplexMatrix&);
  
! extern OCTAVE_API ComplexMatrix operator * (const SparseMatrix&,        
                                       const ComplexMatrix&);
! extern OCTAVE_API ComplexMatrix operator * (const SparseComplexMatrix&, 
                                       const Matrix&);
! extern OCTAVE_API ComplexMatrix operator * (const SparseComplexMatrix&, 
                                       const ComplexMatrix&);
  
! extern OCTAVE_API SparseComplexMatrix min (const Complex& c, 
                                const SparseComplexMatrix& m);
! extern OCTAVE_API SparseComplexMatrix min (const SparseComplexMatrix& m, 
                                const Complex& c);
! extern OCTAVE_API SparseComplexMatrix min (const SparseComplexMatrix& a, 
                                const SparseComplexMatrix& b);
  
! extern OCTAVE_API SparseComplexMatrix max (const Complex& c, 
                                const SparseComplexMatrix& m);
! extern OCTAVE_API SparseComplexMatrix max (const SparseComplexMatrix& m, 
                                const Complex& c);
! extern OCTAVE_API SparseComplexMatrix max (const SparseComplexMatrix& a, 
                                const SparseComplexMatrix& b);
  
  SPARSE_SMS_CMP_OP_DECLS (SparseComplexMatrix, Complex)
Index: liboctave/CmplxAEPBAL.h
===================================================================
RCS file: /cvs/octave/liboctave/CmplxAEPBAL.h,v
retrieving revision 1.19
diff -p -c -r1.19 CmplxAEPBAL.h
*** liboctave/CmplxAEPBAL.h     26 Apr 2005 19:24:28 -0000      1.19
--- liboctave/CmplxAEPBAL.h     17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,35 ****
--- 30,36 ----
  #include "CMatrix.h"
  
  class
+ OCTAVE_API
  ComplexAEPBALANCE
  {
  public:
Index: liboctave/CmplxCHOL.h
===================================================================
RCS file: /cvs/octave/liboctave/CmplxCHOL.h,v
retrieving revision 1.19
diff -p -c -r1.19 CmplxCHOL.h
*** liboctave/CmplxCHOL.h       6 May 2005 16:26:59 -0000       1.19
--- liboctave/CmplxCHOL.h       17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "CMatrix.h"
  
  class
+ OCTAVE_API
  ComplexCHOL
  {
  public:
*************** public:
*** 57,63 ****
  
    ComplexMatrix inverse (void) const;
  
!   friend std::ostream& operator << (std::ostream& os, const ComplexCHOL& a);
  
  private:
  
--- 58,64 ----
  
    ComplexMatrix inverse (void) const;
  
!   friend OCTAVE_API std::ostream& operator << (std::ostream& os, const 
ComplexCHOL& a);
  
  private:
  
*************** private:
*** 66,72 ****
    octave_idx_type init (const ComplexMatrix& a);
  };
  
! ComplexMatrix chol2inv (const ComplexMatrix& r);
  
  #endif
  
--- 67,73 ----
    octave_idx_type init (const ComplexMatrix& a);
  };
  
! ComplexMatrix OCTAVE_API chol2inv (const ComplexMatrix& r);
  
  #endif
  
Index: liboctave/CmplxDET.h
===================================================================
RCS file: /cvs/octave/liboctave/CmplxDET.h,v
retrieving revision 1.21
diff -p -c -r1.21 CmplxDET.h
*** liboctave/CmplxDET.h        24 Apr 2006 19:13:07 -0000      1.21
--- liboctave/CmplxDET.h        17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 31,36 ****
--- 31,37 ----
  // FIXME -- we could use templates here; compare with dbleDET.h
  
  class
+ OCTAVE_API
  ComplexDET
  {
  friend class ComplexMatrix;
Index: liboctave/CmplxHESS.h
===================================================================
RCS file: /cvs/octave/liboctave/CmplxHESS.h,v
retrieving revision 1.18
diff -p -c -r1.18 CmplxHESS.h
*** liboctave/CmplxHESS.h       26 Apr 2005 19:24:28 -0000      1.18
--- liboctave/CmplxHESS.h       17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "CMatrix.h"
  
  class
+ OCTAVE_API
  ComplexHESS
  {
  public:
Index: liboctave/CmplxLU.h
===================================================================
RCS file: /cvs/octave/liboctave/CmplxLU.h,v
retrieving revision 1.19
diff -p -c -r1.19 CmplxLU.h
*** liboctave/CmplxLU.h 26 Apr 2005 19:24:28 -0000      1.19
--- liboctave/CmplxLU.h 17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "CMatrix.h"
  
  class
+ OCTAVE_API
  ComplexLU : public base_lu <ComplexMatrix, Complex, Matrix, double>
  {
  public:
Index: liboctave/CmplxQR.h
===================================================================
RCS file: /cvs/octave/liboctave/CmplxQR.h,v
retrieving revision 1.20
diff -p -c -r1.20 CmplxQR.h
*** liboctave/CmplxQR.h 26 Apr 2005 19:24:28 -0000      1.20
--- liboctave/CmplxQR.h 17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,35 ****
--- 30,36 ----
  #include "dbleQR.h"
  
  class
+ OCTAVE_API
  ComplexQR
  {
  public:
Index: liboctave/CmplxQRP.h
===================================================================
RCS file: /cvs/octave/liboctave/CmplxQRP.h,v
retrieving revision 1.19
diff -p -c -r1.19 CmplxQRP.h
*** liboctave/CmplxQRP.h        26 Apr 2005 19:24:28 -0000      1.19
--- liboctave/CmplxQRP.h        17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "CmplxQR.h"
  
  class
+ OCTAVE_API
  ComplexQRP : public ComplexQR
  {
  public:
Index: liboctave/CmplxSCHUR.h
===================================================================
RCS file: /cvs/octave/liboctave/CmplxSCHUR.h,v
retrieving revision 1.23
diff -p -c -r1.23 CmplxSCHUR.h
*** liboctave/CmplxSCHUR.h      26 Apr 2005 19:24:28 -0000      1.23
--- liboctave/CmplxSCHUR.h      17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,35 ****
--- 30,36 ----
  #include "CMatrix.h"
  
  class
+ OCTAVE_API
  ComplexSCHUR
  {
  public:
Index: liboctave/CmplxSVD.h
===================================================================
RCS file: /cvs/octave/liboctave/CmplxSVD.h,v
retrieving revision 1.25
diff -p -c -r1.25 CmplxSVD.h
*** liboctave/CmplxSVD.h        26 Apr 2005 19:24:28 -0000      1.25
--- liboctave/CmplxSVD.h        17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 31,36 ****
--- 31,37 ----
  #include "dbleSVD.h"
  
  class
+ OCTAVE_API
  ComplexSVD
  {
  public:
Index: liboctave/CollocWt.h
===================================================================
RCS file: /cvs/octave/liboctave/CollocWt.h,v
retrieving revision 1.24
diff -p -c -r1.24 CollocWt.h
*** liboctave/CollocWt.h        26 Apr 2005 19:24:28 -0000      1.24
--- liboctave/CollocWt.h        17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,35 ****
--- 30,36 ----
  #include "dColVector.h"
  
  class
+ OCTAVE_API
  CollocWt
  {
  public:
Index: liboctave/DAE.h
===================================================================
RCS file: /cvs/octave/liboctave/DAE.h,v
retrieving revision 1.24
diff -p -c -r1.24 DAE.h
*** liboctave/DAE.h     26 Apr 2005 19:24:28 -0000      1.24
--- liboctave/DAE.h     17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 28,33 ****
--- 28,34 ----
  #include "base-dae.h"
  
  class
+ OCTAVE_API
  DAE : public base_diff_alg_eqn, public DAEFunc
  {
  public:
Index: liboctave/DASPK.h
===================================================================
RCS file: /cvs/octave/liboctave/DASPK.h,v
retrieving revision 1.14
diff -p -c -r1.14 DASPK.h
*** liboctave/DASPK.h   26 Apr 2005 19:24:28 -0000      1.14
--- liboctave/DASPK.h   17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,35 ****
--- 30,36 ----
  #include "DASPK-opts.h"
  
  class
+ OCTAVE_API
  DASPK : public DAE, public DASPK_options
  {
  public:
Index: liboctave/DASRT.h
===================================================================
RCS file: /cvs/octave/liboctave/DASRT.h,v
retrieving revision 1.15
diff -p -c -r1.15 DASRT.h
*** liboctave/DASRT.h   26 Apr 2005 19:24:28 -0000      1.15
--- liboctave/DASRT.h   17 Oct 2006 11:07:41 -0000
*************** private:
*** 67,72 ****
--- 67,73 ----
  };
  
  class
+ OCTAVE_API
  DASRT : public DAERT, public DASRT_options
  {
  public:
Index: liboctave/DASSL.h
===================================================================
RCS file: /cvs/octave/liboctave/DASSL.h,v
retrieving revision 1.27
diff -p -c -r1.27 DASSL.h
*** liboctave/DASSL.h   26 Apr 2005 19:24:28 -0000      1.27
--- liboctave/DASSL.h   17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,35 ****
--- 30,36 ----
  #include "DASSL-opts.h"
  
  class
+ OCTAVE_API
  DASSL : public DAE, public DASSL_options
  {
  public:
Index: liboctave/EIG.h
===================================================================
RCS file: /cvs/octave/liboctave/EIG.h,v
retrieving revision 1.20
diff -p -c -r1.20 EIG.h
*** liboctave/EIG.h     26 Apr 2005 19:24:28 -0000      1.20
--- liboctave/EIG.h     17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 31,36 ****
--- 31,37 ----
  #include "CColVector.h"
  
  class
+ OCTAVE_API
  EIG
  {
  friend class Matrix;
Index: liboctave/LSODE.h
===================================================================
RCS file: /cvs/octave/liboctave/LSODE.h,v
retrieving revision 1.32
diff -p -c -r1.32 LSODE.h
*** liboctave/LSODE.h   26 Apr 2005 19:24:28 -0000      1.32
--- liboctave/LSODE.h   17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,35 ****
--- 30,36 ----
  #include "LSODE-opts.h"
  
  class
+ OCTAVE_API
  LSODE : public ODE, public LSODE_options
  {
  public:
Index: liboctave/MArray-C.cc
===================================================================
RCS file: /cvs/octave/liboctave/MArray-C.cc,v
retrieving revision 1.12
diff -p -c -r1.12 MArray-C.cc
*** liboctave/MArray-C.cc       26 Apr 2005 19:24:28 -0000      1.12
--- liboctave/MArray-C.cc       17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 32,59 ****
  #include "MArray.h"
  #include "MArray.cc"
  
! template class MArray<Complex>;
  
  INSTANTIATE_MARRAY_FRIENDS (Complex)
  
  #include "MArray2.h"
  #include "MArray2.cc"
  
! template class MArray2<Complex>;
  
  INSTANTIATE_MARRAY2_FRIENDS (Complex)
  
  #include "MArrayN.h"
  #include "MArrayN.cc"
  
! template class MArrayN<Complex>;
  
  INSTANTIATE_MARRAYN_FRIENDS (Complex)
  
  #include "MDiagArray2.h"
  #include "MDiagArray2.cc"
  
! template class MDiagArray2<Complex>;
  
  INSTANTIATE_MDIAGARRAY2_FRIENDS (Complex)
  
--- 32,59 ----
  #include "MArray.h"
  #include "MArray.cc"
  
! template class OCTAVE_API MArray<Complex>;
  
  INSTANTIATE_MARRAY_FRIENDS (Complex)
  
  #include "MArray2.h"
  #include "MArray2.cc"
  
! template class OCTAVE_API MArray2<Complex>;
  
  INSTANTIATE_MARRAY2_FRIENDS (Complex)
  
  #include "MArrayN.h"
  #include "MArrayN.cc"
  
! template class OCTAVE_API MArrayN<Complex>;
  
  INSTANTIATE_MARRAYN_FRIENDS (Complex)
  
  #include "MDiagArray2.h"
  #include "MDiagArray2.cc"
  
! template class OCTAVE_API MDiagArray2<Complex>;
  
  INSTANTIATE_MDIAGARRAY2_FRIENDS (Complex)
  
Index: liboctave/MArray-defs.h
===================================================================
RCS file: /cvs/octave/liboctave/MArray-defs.h,v
retrieving revision 1.13
diff -p -c -r1.13 MArray-defs.h
*** liboctave/MArray-defs.h     8 Apr 2005 16:07:36 -0000       1.13
--- liboctave/MArray-defs.h     17 Oct 2006 11:07:41 -0000
***************
*** 62,68 ****
  
  // Generate forward declarations for OP= operators.
  #define MARRAY_OP_ASSIGN_FWD_DECLS(A_T, RHS_T) \
!   MARRAY_OP_ASSIGN_DECLS (A_T, T, template <typename T>, , RHS_T)
  
  // Generate friend declarations for the OP= operators.
  #define MARRAY_OP_ASSIGN_FRIENDS(A_T, RHS_T) \
--- 62,68 ----
  
  // Generate forward declarations for OP= operators.
  #define MARRAY_OP_ASSIGN_FWD_DECLS(A_T, RHS_T) \
!   MARRAY_OP_ASSIGN_DECLS (A_T, T, template <typename T> OCTAVE_API, , RHS_T)
  
  // Generate friend declarations for the OP= operators.
  #define MARRAY_OP_ASSIGN_FRIENDS(A_T, RHS_T) \
***************
*** 70,76 ****
  
  // Instantiate the OP= operators.
  #define MARRAY_OP_ASSIGN_DEFS(A_T, E_T, RHS_T) \
!   MARRAY_OP_ASSIGN_DECLS (A_T, E_T, template, , RHS_T)
  
  // A function that can be used to forward OP= operations from derived
  // classes back to us.
--- 70,76 ----
  
  // Instantiate the OP= operators.
  #define MARRAY_OP_ASSIGN_DEFS(A_T, E_T, RHS_T) \
!   MARRAY_OP_ASSIGN_DECLS (A_T, E_T, template OCTAVE_API, , RHS_T)
  
  // A function that can be used to forward OP= operations from derived
  // classes back to us.
***************
*** 98,104 ****
  
  // Generate forward declarations for unary operators.
  #define MARRAY_UNOP_FWD_DECLS(A_T) \
!   MARRAY_UNOP_DECLS (A_T, T, template <typename T>, )
  
  // Generate friend declarations for the unary operators.
  #define MARRAY_UNOP_FRIENDS(A_T) \
--- 98,104 ----
  
  // Generate forward declarations for unary operators.
  #define MARRAY_UNOP_FWD_DECLS(A_T) \
!   MARRAY_UNOP_DECLS (A_T, T, template <typename T> OCTAVE_API, )
  
  // Generate friend declarations for the unary operators.
  #define MARRAY_UNOP_FRIENDS(A_T) \
***************
*** 106,112 ****
  
  // Instantiate the unary operators.
  #define MARRAY_UNOP_DEFS(A_T, E_T) \
!   MARRAY_UNOP_DECLS (A_T, E_T, template, )
  
  // A function that can be used to forward unary operations from derived
  // classes back to us.
--- 106,112 ----
  
  // Instantiate the unary operators.
  #define MARRAY_UNOP_DEFS(A_T, E_T) \
!   MARRAY_UNOP_DECLS (A_T, E_T, template OCTAVE_API, )
  
  // A function that can be used to forward unary operations from derived
  // classes back to us.
***************
*** 156,164 ****
  
  // Generate forward declarations for binary operators.
  #define MARRAY_BINOP_FWD_DECLS(A_T) \
!   MARRAY_BINOP_DECLS (A_T, T, template <typename T>, , A_T<T>, T) \
!   MARRAY_BINOP_DECLS (A_T, T, template <typename T>, , T, A_T<T>) \
!   MARRAY_AA_BINOP_DECLS (A_T, T, template <typename T>, )
  
  #define MDIAGARRAY2_BINOP_FWD_DECLS(A_T) \
    MDIAGARRAY2_DAS_BINOP_DECLS (A_T, T, template <typename T>, , A_T<T>, T) \
--- 156,164 ----
  
  // Generate forward declarations for binary operators.
  #define MARRAY_BINOP_FWD_DECLS(A_T) \
!   MARRAY_BINOP_DECLS (A_T, T, template <typename T> OCTAVE_API, , A_T<T>, T) \
!   MARRAY_BINOP_DECLS (A_T, T, template <typename T> OCTAVE_API, , T, A_T<T>) \
!   MARRAY_AA_BINOP_DECLS (A_T, T, template <typename T> OCTAVE_API, )
  
  #define MDIAGARRAY2_BINOP_FWD_DECLS(A_T) \
    MDIAGARRAY2_DAS_BINOP_DECLS (A_T, T, template <typename T>, , A_T<T>, T) \
***************
*** 178,191 ****
  
  // Instantiate the binary operators.
  #define MARRAY_BINOP_DEFS(A_T, E_T) \
!   MARRAY_BINOP_DECLS (A_T, E_T, template, , A_T<E_T>, E_T) \
!   MARRAY_BINOP_DECLS (A_T, E_T, template, , E_T, A_T<E_T>) \
!   MARRAY_AA_BINOP_DECLS (A_T, E_T, template, )
  
  #define MDIAGARRAY2_BINOP_DEFS(A_T, E_T) \
!   MDIAGARRAY2_DAS_BINOP_DECLS (A_T, E_T, template, , A_T<E_T>, E_T) \
!   MDIAGARRAY2_SDA_BINOP_DECLS (A_T, E_T, template, , E_T, A_T<E_T>) \
!   MDIAGARRAY2_DADA_BINOP_DECLS (A_T, E_T, template, )
  
  // A function that can be used to forward binary operations from derived
  // classes back to us.
--- 178,191 ----
  
  // Instantiate the binary operators.
  #define MARRAY_BINOP_DEFS(A_T, E_T) \
!   MARRAY_BINOP_DECLS (A_T, E_T, template OCTAVE_API, , A_T<E_T>, E_T) \
!   MARRAY_BINOP_DECLS (A_T, E_T, template OCTAVE_API, , E_T, A_T<E_T>) \
!   MARRAY_AA_BINOP_DECLS (A_T, E_T, template OCTAVE_API, )
  
  #define MDIAGARRAY2_BINOP_DEFS(A_T, E_T) \
!   MDIAGARRAY2_DAS_BINOP_DECLS (A_T, E_T, template OCTAVE_API, , A_T<E_T>, 
E_T) \
!   MDIAGARRAY2_SDA_BINOP_DECLS (A_T, E_T, template OCTAVE_API, , E_T, 
A_T<E_T>) \
!   MDIAGARRAY2_DADA_BINOP_DECLS (A_T, E_T, template OCTAVE_API, )
  
  // A function that can be used to forward binary operations from derived
  // classes back to us.
Index: liboctave/MSparse-C.cc
===================================================================
RCS file: /cvs/octave/liboctave/MSparse-C.cc,v
retrieving revision 1.3
diff -p -c -r1.3 MSparse-C.cc
*** liboctave/MSparse-C.cc      26 Apr 2005 19:24:28 -0000      1.3
--- liboctave/MSparse-C.cc      17 Oct 2006 11:07:41 -0000
*************** Boston, MA 02110-1301, USA.
*** 29,35 ****
  #include "MSparse.h"
  #include "MSparse.cc"
  
! template class MSparse<Complex>;
  
  INSTANTIATE_SPARSE_FRIENDS (Complex);
  
--- 29,35 ----
  #include "MSparse.h"
  #include "MSparse.cc"
  
! template class OCTAVE_API MSparse<Complex>;
  
  INSTANTIATE_SPARSE_FRIENDS (Complex);
  
Index: liboctave/MSparse-d.cc
===================================================================
RCS file: /cvs/octave/liboctave/MSparse-d.cc,v
retrieving revision 1.3
diff -p -c -r1.3 MSparse-d.cc
*** liboctave/MSparse-d.cc      26 Apr 2005 19:24:28 -0000      1.3
--- liboctave/MSparse-d.cc      17 Oct 2006 11:07:41 -0000
*************** Boston, MA 02110-1301, USA.
*** 27,33 ****
  #include "MSparse.h"
  #include "MSparse.cc"
  
! template class MSparse<double>;
  
  INSTANTIATE_SPARSE_FRIENDS (double);
  
--- 27,33 ----
  #include "MSparse.h"
  #include "MSparse.cc"
  
! template class OCTAVE_API MSparse<double>;
  
  INSTANTIATE_SPARSE_FRIENDS (double);
  
Index: liboctave/MSparse-defs.h
===================================================================
RCS file: /cvs/octave/liboctave/MSparse-defs.h,v
retrieving revision 1.3
diff -p -c -r1.3 MSparse-defs.h
*** liboctave/MSparse-defs.h    26 Apr 2005 19:24:28 -0000      1.3
--- liboctave/MSparse-defs.h    17 Oct 2006 11:07:41 -0000
*************** Boston, MA 02110-1301, USA.
*** 45,51 ****
  
  // Instantiate the OP= operators.
  #define SPARSE_OP_ASSIGN_DEFS(A_T, E_T, RHS_T) \
!   SPARSE_OP_ASSIGN_DECLS (A_T, E_T, template, , RHS_T)
  
  // A function that can be used to forward OP= operations from derived
  // classes back to us.
--- 45,51 ----
  
  // Instantiate the OP= operators.
  #define SPARSE_OP_ASSIGN_DEFS(A_T, E_T, RHS_T) \
!   SPARSE_OP_ASSIGN_DECLS (A_T, E_T, template OCTAVE_API, , RHS_T)
  
  // A function that can be used to forward OP= operations from derived
  // classes back to us.
*************** Boston, MA 02110-1301, USA.
*** 81,87 ****
  
  // Instantiate the unary operators.
  #define SPARSE_UNOP_DEFS(A_T, E_T) \
!   SPARSE_UNOP_DECLS (A_T, E_T, template, )
  
  // A function that can be used to forward unary operations from derived
  // classes back to us.
--- 81,87 ----
  
  // Instantiate the unary operators.
  #define SPARSE_UNOP_DEFS(A_T, E_T) \
!   SPARSE_UNOP_DECLS (A_T, E_T, template OCTAVE_API, )
  
  // A function that can be used to forward unary operations from derived
  // classes back to us.
*************** Boston, MA 02110-1301, USA.
*** 131,139 ****
  
  // Instantiate the binary operators.
  #define SPARSE_BINOP_DEFS(A_T, F_T, E_T) \
!   SPARSE_BINOP_DECLS (A_T, F_T, E_T, template, , A_T<E_T>, E_T)       \
!   SPARSE_BINOP_DECLS (A_T, F_T, E_T, template, , E_T, A_T<E_T>)       \
!   SPARSE_AA_BINOP_DECLS (A_T, E_T, template, )
  
  // A function that can be used to forward binary operations from derived
  // classes back to us.
--- 131,139 ----
  
  // Instantiate the binary operators.
  #define SPARSE_BINOP_DEFS(A_T, F_T, E_T) \
!   SPARSE_BINOP_DECLS (A_T, F_T, E_T, template OCTAVE_API, , A_T<E_T>, E_T)    
\
!   SPARSE_BINOP_DECLS (A_T, F_T, E_T, template OCTAVE_API, , E_T, A_T<E_T>)    
\
!   SPARSE_AA_BINOP_DECLS (A_T, E_T, template OCTAVE_API, )
  
  // A function that can be used to forward binary operations from derived
  // classes back to us.
Index: liboctave/MatrixType.h
===================================================================
RCS file: /cvs/octave/liboctave/MatrixType.h,v
retrieving revision 1.1
diff -p -c -r1.1 MatrixType.h
*** liboctave/MatrixType.h      3 May 2006 19:32:47 -0000       1.1
--- liboctave/MatrixType.h      17 Oct 2006 11:07:41 -0000
*************** class SparseMatrix;
*** 29,34 ****
--- 29,35 ----
  class SparseComplexMatrix;
  
  class
+ OCTAVE_API
  MatrixType
  {
  public:
Index: liboctave/NLEqn.h
===================================================================
RCS file: /cvs/octave/liboctave/NLEqn.h,v
retrieving revision 1.26
diff -p -c -r1.26 NLEqn.h
*** liboctave/NLEqn.h   26 Apr 2005 19:24:28 -0000      1.26
--- liboctave/NLEqn.h   17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,35 ****
--- 30,36 ----
  #include "NLEqn-opts.h"
  
  class
+ OCTAVE_API
  NLEqn : public NLFunc, public NLEqn_options
  {
  public:
Index: liboctave/Quad.h
===================================================================
RCS file: /cvs/octave/liboctave/Quad.h,v
retrieving revision 1.31
diff -p -c -r1.31 Quad.h
*** liboctave/Quad.h    24 Apr 2006 19:13:07 -0000      1.31
--- liboctave/Quad.h    17 Oct 2006 11:07:41 -0000
*************** typedef double (*integrand_fcn) (double 
*** 40,50 ****
  // variable.
  // Nonzero means an error occurred in the calculation of the integrand
  // function, and the user wants us to quit.
! extern int quad_integration_error;
  
  #include "Quad-opts.h"
  
  class
  Quad : public Quad_options
  {
   public:
--- 40,51 ----
  // variable.
  // Nonzero means an error occurred in the calculation of the integrand
  // function, and the user wants us to quit.
! extern OCTAVE_API int quad_integration_error;
  
  #include "Quad-opts.h"
  
  class
+ OCTAVE_API
  Quad : public Quad_options
  {
   public:
*************** Quad : public Quad_options
*** 87,92 ****
--- 88,94 ----
  };
  
  class
+ OCTAVE_API
  DefQuad : public Quad
  {
   public:
*************** DefQuad : public Quad
*** 119,124 ****
--- 121,127 ----
  };
  
  class
+ OCTAVE_API
  IndefQuad : public Quad
  {
   public:
Index: liboctave/Range.h
===================================================================
RCS file: /cvs/octave/liboctave/Range.h,v
retrieving revision 1.27
diff -p -c -r1.27 Range.h
*** liboctave/Range.h   11 May 2005 16:34:11 -0000      1.27
--- liboctave/Range.h   17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 28,33 ****
--- 28,34 ----
  #include "dMatrix.h"
  
  class
+ OCTAVE_API
  Range
  {
   public:
*************** Range
*** 88,95 ****
        }
    }
  
!   friend std::ostream& operator << (std::ostream& os, const Range& r);
!   friend std::istream& operator >> (std::istream& is, Range& r);
  
    void print_range (void);
  
--- 89,96 ----
        }
    }
  
!   friend OCTAVE_API std::ostream& operator << (std::ostream& os, const Range& 
r);
!   friend OCTAVE_API std::istream& operator >> (std::istream& is, Range& r);
  
    void print_range (void);
  
*************** Range
*** 108,114 ****
    void clear_cache (void) const { cache.resize (0, 0); }
  };
  
! extern Range operator - (const Range& r);
  
  #endif
  
--- 109,115 ----
    void clear_cache (void) const { cache.resize (0, 0); }
  };
  
! extern OCTAVE_API Range operator - (const Range& r);
  
  #endif
  
Index: liboctave/Sparse-op-defs.h
===================================================================
RCS file: /cvs/octave/liboctave/Sparse-op-defs.h,v
retrieving revision 1.14
diff -p -c -r1.14 Sparse-op-defs.h
*** liboctave/Sparse-op-defs.h  1 Jul 2006 19:42:07 -0000       1.14
--- liboctave/Sparse-op-defs.h  17 Oct 2006 11:07:41 -0000
*************** Boston, MA 02110-1301, USA.
*** 26,38 ****
  #include "Array-util.h"
  
  #define SPARSE_BIN_OP_DECL(R, OP, X, Y) \
!   extern R OP (const X&, const Y&)
  
  #define SPARSE_CMP_OP_DECL(OP, X, Y) \
!   extern SparseBoolMatrix OP (const X&, const Y&)
  
  #define SPARSE_BOOL_OP_DECL(OP, X, Y) \
!   extern SparseBoolMatrix OP (const X&, const Y&)
  
  // matrix by scalar operations.
  
--- 26,38 ----
  #include "Array-util.h"
  
  #define SPARSE_BIN_OP_DECL(R, OP, X, Y) \
!   extern OCTAVE_API R OP (const X&, const Y&)
  
  #define SPARSE_CMP_OP_DECL(OP, X, Y) \
!   extern OCTAVE_API SparseBoolMatrix OP (const X&, const Y&)
  
  #define SPARSE_BOOL_OP_DECL(OP, X, Y) \
!   extern OCTAVE_API SparseBoolMatrix OP (const X&, const Y&)
  
  // matrix by scalar operations.
  
Index: liboctave/Sparse.h
===================================================================
RCS file: /cvs/octave/liboctave/Sparse.h,v
retrieving revision 1.7
diff -p -c -r1.7 Sparse.h
*** liboctave/Sparse.h  22 Jul 2006 08:31:16 -0000      1.7
--- liboctave/Sparse.h  17 Oct 2006 11:07:41 -0000
*************** protected:
*** 48,54 ****
    // The real representation of all Sparse arrays.
    //--------------------------------------------------------------------
  
!   class SparseRep
    {
    public:
  
--- 48,54 ----
    // The real representation of all Sparse arrays.
    //--------------------------------------------------------------------
  
!   class OCTAVE_API SparseRep
    {
    public:
  
*************** template <class LT, class RT>
*** 529,539 ****
  assign1 (Sparse<LT>& lhs, const Sparse<RT>& rhs);
  
  #define INSTANTIATE_SPARSE_ASSIGN(LT, RT) \
!   template int assign (Sparse<LT>&, const Sparse<RT>&); \
!   template int assign1 (Sparse<LT>&, const Sparse<RT>&);
  
  #define INSTANTIATE_SPARSE(T) \
!   template class Sparse<T>;
  
  #define INSTANTIATE_SPARSE_AND_ASSIGN(T) \
    INSTANTIATE_SPARSE (T); \
--- 529,539 ----
  assign1 (Sparse<LT>& lhs, const Sparse<RT>& rhs);
  
  #define INSTANTIATE_SPARSE_ASSIGN(LT, RT) \
!   template OCTAVE_API int assign (Sparse<LT>&, const Sparse<RT>&); \
!   template OCTAVE_API int assign1 (Sparse<LT>&, const Sparse<RT>&);
  
  #define INSTANTIATE_SPARSE(T) \
!   template class OCTAVE_API Sparse<T>;
  
  #define INSTANTIATE_SPARSE_AND_ASSIGN(T) \
    INSTANTIATE_SPARSE (T); \
Index: liboctave/SparseCmplxCHOL.h
===================================================================
RCS file: /cvs/octave/liboctave/SparseCmplxCHOL.h,v
retrieving revision 1.1
diff -p -c -r1.1 SparseCmplxCHOL.h
*** liboctave/SparseCmplxCHOL.h 23 Oct 2005 19:09:33 -0000      1.1
--- liboctave/SparseCmplxCHOL.h 17 Oct 2006 11:07:41 -0000
*************** Boston, MA 02110-1301, USA.
*** 28,33 ****
--- 28,34 ----
  #include "CSparse.h"
  
  class
+ OCTAVE_API
  SparseComplexCHOL : 
    public sparse_base_chol <SparseComplexMatrix, Complex, SparseMatrix>
  {
*************** public:
*** 91,97 ****
        SparseMatrix>:: inverse (); }
  };
  
! SparseComplexMatrix chol2inv (const SparseComplexMatrix& r);
  
  #endif
  
--- 92,98 ----
        SparseMatrix>:: inverse (); }
  };
  
! SparseComplexMatrix OCTAVE_API chol2inv (const SparseComplexMatrix& r);
  
  #endif
  
Index: liboctave/SparseCmplxLU.h
===================================================================
RCS file: /cvs/octave/liboctave/SparseCmplxLU.h,v
retrieving revision 1.4
diff -p -c -r1.4 SparseCmplxLU.h
*** liboctave/SparseCmplxLU.h   26 Apr 2005 19:24:28 -0000      1.4
--- liboctave/SparseCmplxLU.h   17 Oct 2006 11:07:41 -0000
*************** Boston, MA 02110-1301, USA.
*** 28,33 ****
--- 28,34 ----
  #include "CSparse.h"
  
  class
+ OCTAVE_API
  SparseComplexLU 
    : public sparse_base_lu <SparseComplexMatrix, Complex, SparseMatrix, double>
  {
Index: liboctave/SparseCmplxQR.h
===================================================================
RCS file: /cvs/octave/liboctave/SparseCmplxQR.h,v
retrieving revision 1.4
diff -p -c -r1.4 SparseCmplxQR.h
*** liboctave/SparseCmplxQR.h   4 May 2006 20:14:49 -0000       1.4
--- liboctave/SparseCmplxQR.h   17 Oct 2006 11:07:41 -0000
*************** Boston, MA 02110-1301, USA.
*** 37,42 ****
--- 37,43 ----
  #endif
  
  class
+ OCTAVE_API
  SparseComplexQR
  {
  protected:
Index: liboctave/SparseQR.h
===================================================================
RCS file: /cvs/octave/liboctave/SparseQR.h,v
retrieving revision 1.4
diff -p -c -r1.4 SparseQR.h
*** liboctave/SparseQR.h        4 May 2006 20:14:49 -0000       1.4
--- liboctave/SparseQR.h        17 Oct 2006 11:07:41 -0000
*************** Boston, MA 02110-1301, USA.
*** 37,42 ****
--- 37,43 ----
  #endif
  
  class
+ OCTAVE_API
  SparseQR
  {
  protected:
Index: liboctave/SparsedbleCHOL.h
===================================================================
RCS file: /cvs/octave/liboctave/SparsedbleCHOL.h,v
retrieving revision 1.1
diff -p -c -r1.1 SparsedbleCHOL.h
*** liboctave/SparsedbleCHOL.h  23 Oct 2005 19:09:33 -0000      1.1
--- liboctave/SparsedbleCHOL.h  17 Oct 2006 11:07:41 -0000
*************** Boston, MA 02110-1301, USA.
*** 27,32 ****
--- 27,33 ----
  #include "dSparse.h"
  
  class
+ OCTAVE_API
  SparseCHOL : public sparse_base_chol <SparseMatrix, double, SparseMatrix>
  {
  public:
*************** public:
*** 79,85 ****
         inverse (); }
  };
  
! SparseMatrix chol2inv (const SparseMatrix& r);
  
  #endif
  
--- 80,86 ----
         inverse (); }
  };
  
! SparseMatrix OCTAVE_API chol2inv (const SparseMatrix& r);
  
  #endif
  
Index: liboctave/SparsedbleLU.h
===================================================================
RCS file: /cvs/octave/liboctave/SparsedbleLU.h,v
retrieving revision 1.4
diff -p -c -r1.4 SparsedbleLU.h
*** liboctave/SparsedbleLU.h    26 Apr 2005 19:24:28 -0000      1.4
--- liboctave/SparsedbleLU.h    17 Oct 2006 11:07:41 -0000
*************** Boston, MA 02110-1301, USA.
*** 27,32 ****
--- 27,33 ----
  #include "dSparse.h"
  
  class
+ OCTAVE_API
  SparseLU : public sparse_base_lu <SparseMatrix, double, SparseMatrix, double>
  {
  public:
Index: liboctave/boolMatrix.h
===================================================================
RCS file: /cvs/octave/liboctave/boolMatrix.h,v
retrieving revision 1.17
diff -p -c -r1.17 boolMatrix.h
*** liboctave/boolMatrix.h      26 Apr 2005 19:24:28 -0000      1.17
--- liboctave/boolMatrix.h      17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,35 ****
--- 30,36 ----
  #include "mx-op-defs.h"
  
  class
+ OCTAVE_API
  boolMatrix : public Array2<bool>
  {
  public:
Index: liboctave/boolNDArray.h
===================================================================
RCS file: /cvs/octave/liboctave/boolNDArray.h,v
retrieving revision 1.17
diff -p -c -r1.17 boolNDArray.h
*** liboctave/boolNDArray.h     24 Apr 2006 19:13:07 -0000      1.17
--- liboctave/boolNDArray.h     17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 33,38 ****
--- 33,39 ----
  #include "boolMatrix.h"
  
  class
+ OCTAVE_API
  boolNDArray : public ArrayN<bool>
  {
  public:
Index: liboctave/boolSparse.h
===================================================================
RCS file: /cvs/octave/liboctave/boolSparse.h,v
retrieving revision 1.4
diff -p -c -r1.4 boolSparse.h
*** liboctave/boolSparse.h      26 Apr 2005 19:24:28 -0000      1.4
--- liboctave/boolSparse.h      17 Oct 2006 11:07:41 -0000
*************** Boston, MA 02110-1301, USA.
*** 28,33 ****
--- 28,34 ----
  #include "Sparse-op-defs.h"
  
  class
+ OCTAVE_API
  SparseBoolMatrix : public Sparse<bool>
  {
  public:
*************** public:
*** 108,115 ****
  
    // i/o
  
!   friend std::ostream& operator << (std::ostream& os, const SparseBoolMatrix& 
a);
!   friend std::istream& operator >> (std::istream& is, SparseBoolMatrix& a);
  };
  
  SPARSE_SMS_EQNE_OP_DECLS (SparseBoolMatrix, bool)
--- 109,116 ----
  
    // i/o
  
!   friend OCTAVE_API std::ostream& operator << (std::ostream& os, const 
SparseBoolMatrix& a);
!   friend OCTAVE_API std::istream& operator >> (std::istream& is, 
SparseBoolMatrix& a);
  };
  
  SPARSE_SMS_EQNE_OP_DECLS (SparseBoolMatrix, bool)
Index: liboctave/chMatrix.h
===================================================================
RCS file: /cvs/octave/liboctave/chMatrix.h,v
retrieving revision 1.29
diff -p -c -r1.29 chMatrix.h
*** liboctave/chMatrix.h        26 Apr 2005 19:24:28 -0000      1.29
--- liboctave/chMatrix.h        17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 32,37 ****
--- 32,38 ----
  #include "str-vec.h"
  
  class
+ OCTAVE_API
  charMatrix : public MArray2<char>
  {
  friend class ComplexMatrix;
Index: liboctave/chNDArray.h
===================================================================
RCS file: /cvs/octave/liboctave/chNDArray.h,v
retrieving revision 1.15
diff -p -c -r1.15 chNDArray.h
*** liboctave/chNDArray.h       24 Apr 2006 19:13:07 -0000      1.15
--- liboctave/chNDArray.h       17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 31,36 ****
--- 31,37 ----
  #include "mx-op-defs.h"
  
  class
+ OCTAVE_API
  charNDArray : public MArrayN<char>
  {
  public:
Index: liboctave/cmd-edit.h
===================================================================
RCS file: /cvs/octave/liboctave/cmd-edit.h,v
retrieving revision 1.16
diff -p -c -r1.16 cmd-edit.h
*** liboctave/cmd-edit.h        26 Apr 2005 19:24:28 -0000      1.16
--- liboctave/cmd-edit.h        17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 31,36 ****
--- 31,37 ----
  #include "str-vec.h"
  
  class
+ OCTAVE_API
  command_editor
  {
  protected:
Index: liboctave/cmd-hist.h
===================================================================
RCS file: /cvs/octave/liboctave/cmd-hist.h,v
retrieving revision 1.12
diff -p -c -r1.12 cmd-hist.h
*** liboctave/cmd-hist.h        26 Apr 2005 19:24:28 -0000      1.12
--- liboctave/cmd-hist.h        17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "str-vec.h"
  
  class
+ OCTAVE_API
  command_history
  {
  protected:
Index: liboctave/dColVector.h
===================================================================
RCS file: /cvs/octave/liboctave/dColVector.h,v
retrieving revision 1.26
diff -p -c -r1.26 dColVector.h
*** liboctave/dColVector.h      26 Oct 2005 15:24:08 -0000      1.26
--- liboctave/dColVector.h      17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "mx-defs.h"
  
  class
+ OCTAVE_API
  ColumnVector : public MArray<double>
  {
  public:
*************** public:
*** 63,70 ****
  
    RowVector transpose (void) const;
  
!   friend ColumnVector real (const ComplexColumnVector& a);
!   friend ColumnVector imag (const ComplexColumnVector& a);
  
    // resize is the destructive equivalent for this one
  
--- 64,71 ----
  
    RowVector transpose (void) const;
  
!   friend OCTAVE_API ColumnVector real (const ComplexColumnVector& a);
!   friend OCTAVE_API ColumnVector imag (const ComplexColumnVector& a);
  
    // resize is the destructive equivalent for this one
  
*************** public:
*** 74,84 ****
  
    // matrix by column vector -> column vector operations
  
!   friend ColumnVector operator * (const Matrix& a, const ColumnVector& b);
  
    // diagonal matrix by column vector -> column vector operations
  
!   friend ColumnVector operator * (const DiagMatrix& a, const ColumnVector& b);
  
    // other operations
  
--- 75,85 ----
  
    // matrix by column vector -> column vector operations
  
!   friend OCTAVE_API ColumnVector operator * (const Matrix& a, const 
ColumnVector& b);
  
    // diagonal matrix by column vector -> column vector operations
  
!   friend OCTAVE_API ColumnVector operator * (const DiagMatrix& a, const 
ColumnVector& b);
  
    // other operations
  
*************** public:
*** 91,98 ****
  
    // i/o
  
!   friend std::ostream& operator << (std::ostream& os, const ColumnVector& a);
!   friend std::istream& operator >> (std::istream& is, ColumnVector& a);
  
  private:
  
--- 92,99 ----
  
    // i/o
  
!   friend OCTAVE_API std::ostream& operator << (std::ostream& os, const 
ColumnVector& a);
!   friend OCTAVE_API std::istream& operator >> (std::istream& is, 
ColumnVector& a);
  
  private:
  
*************** private:
*** 101,108 ****
  
  // Publish externally used friend functions.
  
! extern ColumnVector real (const ComplexColumnVector& a);
! extern ColumnVector imag (const ComplexColumnVector& a);
  
  MARRAY_FORWARD_DEFS (MArray, ColumnVector, double)
  
--- 102,109 ----
  
  // Publish externally used friend functions.
  
! extern OCTAVE_API ColumnVector real (const ComplexColumnVector& a);
! extern OCTAVE_API ColumnVector imag (const ComplexColumnVector& a);
  
  MARRAY_FORWARD_DEFS (MArray, ColumnVector, double)
  
Index: liboctave/dDiagMatrix.h
===================================================================
RCS file: /cvs/octave/liboctave/dDiagMatrix.h,v
retrieving revision 1.24
diff -p -c -r1.24 dDiagMatrix.h
*** liboctave/dDiagMatrix.h     26 Apr 2005 19:24:28 -0000      1.24
--- liboctave/dDiagMatrix.h     17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 32,37 ****
--- 32,38 ----
  #include "mx-defs.h"
  
  class
+ OCTAVE_API
  DiagMatrix : public MDiagArray2<double>
  {
  friend class SVD;
Index: liboctave/dMatrix.h
===================================================================
RCS file: /cvs/octave/liboctave/dMatrix.h,v
retrieving revision 1.66
diff -p -c -r1.66 dMatrix.h
*** liboctave/dMatrix.h 23 Aug 2006 18:35:38 -0000      1.66
--- liboctave/dMatrix.h 17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 32,37 ****
--- 32,38 ----
  #include "mx-op-defs.h"
  
  class
+ OCTAVE_API
  Matrix : public MArray2<double>
  {
  public:
*************** public:
*** 89,96 ****
    Matrix stack (const ColumnVector& a) const;
    Matrix stack (const DiagMatrix& a) const;
  
!   friend Matrix real (const ComplexMatrix& a);
!   friend Matrix imag (const ComplexMatrix& a);
  
    Matrix transpose (void) const { return MArray2<double>::transpose (); }
  
--- 90,97 ----
    Matrix stack (const ColumnVector& a) const;
    Matrix stack (const DiagMatrix& a) const;
  
!   friend OCTAVE_API Matrix real (const ComplexMatrix& a);
!   friend OCTAVE_API Matrix imag (const ComplexMatrix& a);
  
    Matrix transpose (void) const { return MArray2<double>::transpose (); }
  
*************** public:
*** 274,281 ****
  
    // i/o
  
!   friend std::ostream& operator << (std::ostream& os, const Matrix& a);
!   friend std::istream& operator >> (std::istream& is, Matrix& a);
  
    static double resize_fill_value (void) { return 0; }
  
--- 275,282 ----
  
    // i/o
  
!   friend OCTAVE_API std::ostream& operator << (std::ostream& os, const 
Matrix& a);
!   friend OCTAVE_API std::istream& operator >> (std::istream& is, Matrix& a);
  
    static double resize_fill_value (void) { return 0; }
  
*************** private:
*** 286,313 ****
  
  // Publish externally used friend functions.
  
! extern Matrix real (const ComplexMatrix& a);
! extern Matrix imag (const ComplexMatrix& a);
  
  // column vector by row vector -> matrix operations
  
! extern Matrix operator * (const ColumnVector& a, const RowVector& b);
  
  // Other functions.
  
! extern Matrix Givens (double, double);
  
! extern Matrix Sylvester (const Matrix&, const Matrix&, const Matrix&);
  
! extern Matrix operator * (const Matrix& a, const Matrix& b);
  
! extern Matrix min (double d, const Matrix& m);
! extern Matrix min (const Matrix& m, double d);
! extern Matrix min (const Matrix& a, const Matrix& b);
  
! extern Matrix max (double d, const Matrix& m);
! extern Matrix max (const Matrix& m, double d);
! extern Matrix max (const Matrix& a, const Matrix& b);
  
  MS_CMP_OP_DECLS (Matrix, double)
  MS_BOOL_OP_DECLS (Matrix, double)
--- 287,314 ----
  
  // Publish externally used friend functions.
  
! extern OCTAVE_API Matrix real (const ComplexMatrix& a);
! extern OCTAVE_API Matrix imag (const ComplexMatrix& a);
  
  // column vector by row vector -> matrix operations
  
! extern OCTAVE_API Matrix operator * (const ColumnVector& a, const RowVector& 
b);
  
  // Other functions.
  
! extern OCTAVE_API Matrix Givens (double, double);
  
! extern OCTAVE_API Matrix Sylvester (const Matrix&, const Matrix&, const 
Matrix&);
  
! extern OCTAVE_API Matrix operator * (const Matrix& a, const Matrix& b);
  
! extern OCTAVE_API Matrix min (double d, const Matrix& m);
! extern OCTAVE_API Matrix min (const Matrix& m, double d);
! extern OCTAVE_API Matrix min (const Matrix& a, const Matrix& b);
  
! extern OCTAVE_API Matrix max (double d, const Matrix& m);
! extern OCTAVE_API Matrix max (const Matrix& m, double d);
! extern OCTAVE_API Matrix max (const Matrix& a, const Matrix& b);
  
  MS_CMP_OP_DECLS (Matrix, double)
  MS_BOOL_OP_DECLS (Matrix, double)
Index: liboctave/dNDArray.h
===================================================================
RCS file: /cvs/octave/liboctave/dNDArray.h,v
retrieving revision 1.26
diff -p -c -r1.26 dNDArray.h
*** liboctave/dNDArray.h        18 Aug 2006 21:27:03 -0000      1.26
--- liboctave/dNDArray.h        17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 32,37 ****
--- 32,38 ----
  #include "mx-op-defs.h"
  
  class
+ OCTAVE_API
  NDArray : public MArrayN<double>
  {
  public:
*************** public:
*** 102,109 ****
    ComplexNDArray fourierNd (void) const;
    ComplexNDArray ifourierNd (void) const;
  
!   friend NDArray real (const ComplexNDArray& a);
!   friend NDArray imag (const ComplexNDArray& a);
  
    Matrix matrix_value (void) const;
  
--- 103,110 ----
    ComplexNDArray fourierNd (void) const;
    ComplexNDArray ifourierNd (void) const;
  
!   friend OCTAVE_API NDArray real (const ComplexNDArray& a);
!   friend OCTAVE_API NDArray imag (const ComplexNDArray& a);
  
    Matrix matrix_value (void) const;
  
*************** public:
*** 118,125 ****
  
    // i/o
  
!   friend std::ostream& operator << (std::ostream& os, const NDArray& a);
!   friend std::istream& operator >> (std::istream& is, NDArray& a);
  
    static double resize_fill_value (void) { return 0; }
  
--- 119,126 ----
  
    // i/o
  
!   friend OCTAVE_API std::ostream& operator << (std::ostream& os, const 
NDArray& a);
!   friend OCTAVE_API std::istream& operator >> (std::istream& is, NDArray& a);
  
    static double resize_fill_value (void) { return 0; }
  
*************** private:
*** 130,145 ****
  
  // Publish externally used friend functions.
  
! extern NDArray real (const ComplexNDArray& a);
! extern NDArray imag (const ComplexNDArray& a);
  
! extern NDArray min (double d, const NDArray& m);
! extern NDArray min (const NDArray& m, double d);
! extern NDArray min (const NDArray& a, const NDArray& b);
! 
! extern NDArray max (double d, const NDArray& m);
! extern NDArray max (const NDArray& m, double d);
! extern NDArray max (const NDArray& a, const NDArray& b);
  
  NDS_CMP_OP_DECLS (NDArray, double)
  NDS_BOOL_OP_DECLS (NDArray, double)
--- 131,146 ----
  
  // Publish externally used friend functions.
  
! extern OCTAVE_API NDArray real (const ComplexNDArray& a);
! extern OCTAVE_API NDArray imag (const ComplexNDArray& a);
  
! extern OCTAVE_API NDArray min (double d, const NDArray& m);
! extern OCTAVE_API NDArray min (const NDArray& m, double d);
! extern OCTAVE_API NDArray min (const NDArray& a, const NDArray& b);
! 
! extern OCTAVE_API NDArray max (double d, const NDArray& m);
! extern OCTAVE_API NDArray max (const NDArray& m, double d);
! extern OCTAVE_API NDArray max (const NDArray& a, const NDArray& b);
  
  NDS_CMP_OP_DECLS (NDArray, double)
  NDS_BOOL_OP_DECLS (NDArray, double)
Index: liboctave/dRowVector.h
===================================================================
RCS file: /cvs/octave/liboctave/dRowVector.h,v
retrieving revision 1.28
diff -p -c -r1.28 dRowVector.h
*** liboctave/dRowVector.h      26 Apr 2005 19:24:28 -0000      1.28
--- liboctave/dRowVector.h      17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "mx-defs.h"
  
  class
+ OCTAVE_API
  RowVector : public MArray<double>
  {
  public:
*************** public:
*** 63,70 ****
  
    ColumnVector transpose (void) const;
  
!   friend RowVector real (const ComplexRowVector& a);
!   friend RowVector imag (const ComplexRowVector& a);
  
    // resize is the destructive equivalent for this one
  
--- 64,71 ----
  
    ColumnVector transpose (void) const;
  
!   friend OCTAVE_API RowVector real (const ComplexRowVector& a);
!   friend OCTAVE_API RowVector imag (const ComplexRowVector& a);
  
    // resize is the destructive equivalent for this one
  
*************** public:
*** 74,80 ****
  
    // row vector by matrix -> row vector
  
!   friend RowVector operator * (const RowVector& a, const Matrix& b);
  
    // other operations
  
--- 75,81 ----
  
    // row vector by matrix -> row vector
  
!   friend OCTAVE_API RowVector operator * (const RowVector& a, const Matrix& 
b);
  
    // other operations
  
*************** public:
*** 87,94 ****
  
    // i/o
  
!   friend std::ostream& operator << (std::ostream& os, const RowVector& a);
!   friend std::istream& operator >> (std::istream& is, RowVector& a);
  
  private:
  
--- 88,95 ----
  
    // i/o
  
!   friend OCTAVE_API std::ostream& operator << (std::ostream& os, const 
RowVector& a);
!   friend OCTAVE_API std::istream& operator >> (std::istream& is, RowVector& 
a);
  
  private:
  
*************** private:
*** 97,109 ****
  
  // row vector by column vector -> scalar
  
! double operator * (const RowVector& a, const ColumnVector& b);
  
! Complex operator * (const RowVector& a, const ComplexColumnVector& b);
  
  // other operations
  
! RowVector linspace (double x1, double x2, octave_idx_type n);
  
  MARRAY_FORWARD_DEFS (MArray, RowVector, double)
  
--- 98,110 ----
  
  // row vector by column vector -> scalar
  
! double OCTAVE_API operator * (const RowVector& a, const ColumnVector& b);
  
! Complex OCTAVE_API operator * (const RowVector& a, const ComplexColumnVector& 
b);
  
  // other operations
  
! OCTAVE_API RowVector linspace (double x1, double x2, octave_idx_type n);
  
  MARRAY_FORWARD_DEFS (MArray, RowVector, double)
  
Index: liboctave/dSparse.h
===================================================================
RCS file: /cvs/octave/liboctave/dSparse.h,v
retrieving revision 1.12
diff -p -c -r1.12 dSparse.h
*** liboctave/dSparse.h 3 May 2006 19:32:47 -0000       1.12
--- liboctave/dSparse.h 17 Oct 2006 11:07:41 -0000
*************** class SparseComplexMatrix;
*** 39,44 ****
--- 39,45 ----
  class SparseBoolMatrix;
  
  class
+ OCTAVE_API
  SparseMatrix : public MSparse<double>
  {
   public:
*************** SparseMatrix : public MSparse<double>
*** 101,112 ****
    SparseComplexMatrix concat (const SparseComplexMatrix& rb,
                              const Array<octave_idx_type>& ra_idx);
  
!   friend SparseMatrix real (const SparseComplexMatrix& a);
!   friend SparseMatrix imag (const SparseComplexMatrix& a);
  
!   friend SparseMatrix atan2 (const double& x, const SparseMatrix& y);
!   friend SparseMatrix atan2 (const SparseMatrix& x, const double& y);
!   friend SparseMatrix atan2 (const SparseMatrix& x, const SparseMatrix& y);
  
    SparseMatrix transpose (void) const 
      { 
--- 102,113 ----
    SparseComplexMatrix concat (const SparseComplexMatrix& rb,
                              const Array<octave_idx_type>& ra_idx);
  
!   friend OCTAVE_API SparseMatrix real (const SparseComplexMatrix& a);
!   friend OCTAVE_API SparseMatrix imag (const SparseComplexMatrix& a);
  
!   friend OCTAVE_API SparseMatrix atan2 (const double& x, const SparseMatrix& 
y);
!   friend OCTAVE_API SparseMatrix atan2 (const SparseMatrix& x, const double& 
y);
!   friend OCTAVE_API SparseMatrix atan2 (const SparseMatrix& x, const 
SparseMatrix& y);
  
    SparseMatrix transpose (void) const 
      { 
*************** public:
*** 406,436 ****
  
    // i/o
  
!   friend std::ostream& operator << (std::ostream& os, const SparseMatrix& a);
!   friend std::istream& operator >> (std::istream& is, SparseMatrix& a);
  };
  
  // Publish externally used friend functions.
  
! extern SparseMatrix real (const SparseComplexMatrix& a);
! extern SparseMatrix imag (const SparseComplexMatrix& a);
  
  // Other operators.
  
! extern SparseMatrix operator * (const SparseMatrix& a, 
                                const SparseMatrix& b);
! extern Matrix operator * (const Matrix& a, 
                                const SparseMatrix& b);
! extern Matrix operator * (const SparseMatrix& a, 
                                const Matrix& b);
  
! extern SparseMatrix min (double d, const SparseMatrix& m);
! extern SparseMatrix min (const SparseMatrix& m, double d);
! extern SparseMatrix min (const SparseMatrix& a, const SparseMatrix& b);
! 
! extern SparseMatrix max (double d, const SparseMatrix& m);
! extern SparseMatrix max (const SparseMatrix& m, double d);
! extern SparseMatrix max (const SparseMatrix& a, const SparseMatrix& b);
  
  SPARSE_SMS_CMP_OP_DECLS (SparseMatrix, double)
  SPARSE_SMS_BOOL_OP_DECLS (SparseMatrix, double)
--- 407,437 ----
  
    // i/o
  
!   friend OCTAVE_API std::ostream& operator << (std::ostream& os, const 
SparseMatrix& a);
!   friend OCTAVE_API std::istream& operator >> (std::istream& is, 
SparseMatrix& a);
  };
  
  // Publish externally used friend functions.
  
! extern OCTAVE_API SparseMatrix real (const SparseComplexMatrix& a);
! extern OCTAVE_API SparseMatrix imag (const SparseComplexMatrix& a);
  
  // Other operators.
  
! extern OCTAVE_API SparseMatrix operator * (const SparseMatrix& a, 
                                const SparseMatrix& b);
! extern OCTAVE_API Matrix operator * (const Matrix& a, 
                                const SparseMatrix& b);
! extern OCTAVE_API Matrix operator * (const SparseMatrix& a, 
                                const Matrix& b);
  
! extern OCTAVE_API SparseMatrix min (double d, const SparseMatrix& m);
! extern OCTAVE_API SparseMatrix min (const SparseMatrix& m, double d);
! extern OCTAVE_API SparseMatrix min (const SparseMatrix& a, const 
SparseMatrix& b);
! 
! extern OCTAVE_API SparseMatrix max (double d, const SparseMatrix& m);
! extern OCTAVE_API SparseMatrix max (const SparseMatrix& m, double d);
! extern OCTAVE_API SparseMatrix max (const SparseMatrix& a, const 
SparseMatrix& b);
  
  SPARSE_SMS_CMP_OP_DECLS (SparseMatrix, double)
  SPARSE_SMS_BOOL_OP_DECLS (SparseMatrix, double)
Index: liboctave/data-conv.h
===================================================================
RCS file: /cvs/octave/liboctave/data-conv.h,v
retrieving revision 1.12
diff -p -c -r1.12 data-conv.h
*** liboctave/data-conv.h       23 May 2006 06:05:14 -0000      1.12
--- liboctave/data-conv.h       17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "mach-info.h"
  
  class
+ OCTAVE_API
  oct_data_conv
  {
  public:
*************** enum save_type
*** 91,118 ****
      LS_LONG    = 9
    };
  
! extern void
  do_double_format_conversion (void *data, int len,
                             oct_mach_info::float_format from_fmt,
                             oct_mach_info::float_format to_fmt
                               = oct_mach_info::native_float_format ());
  
! extern void
  do_float_format_conversion (void *data, int len,
                            oct_mach_info::float_format from_fmt,
                            oct_mach_info::float_format to_fmt
                              = oct_mach_info::native_float_format ());
  
! extern void
  do_float_format_conversion (void *data, size_t sz, int len,
                            oct_mach_info::float_format from_fmt,
                            oct_mach_info::float_format to_fmt
                              = oct_mach_info::native_float_format ());
  
! extern void
  read_doubles (std::istream& is, double *data, save_type type, int len,
              bool swap, oct_mach_info::float_format fmt);
! extern void
  write_doubles (std::ostream& os, const double *data, save_type type, int len);
  
  #endif
--- 92,119 ----
      LS_LONG    = 9
    };
  
! extern OCTAVE_API void
  do_double_format_conversion (void *data, int len,
                             oct_mach_info::float_format from_fmt,
                             oct_mach_info::float_format to_fmt
                               = oct_mach_info::native_float_format ());
  
! extern OCTAVE_API void
  do_float_format_conversion (void *data, int len,
                            oct_mach_info::float_format from_fmt,
                            oct_mach_info::float_format to_fmt
                              = oct_mach_info::native_float_format ());
  
! extern OCTAVE_API void
  do_float_format_conversion (void *data, size_t sz, int len,
                            oct_mach_info::float_format from_fmt,
                            oct_mach_info::float_format to_fmt
                              = oct_mach_info::native_float_format ());
  
! extern OCTAVE_API void
  read_doubles (std::istream& is, double *data, save_type type, int len,
              bool swap, oct_mach_info::float_format fmt);
! extern OCTAVE_API void
  write_doubles (std::ostream& os, const double *data, save_type type, int len);
  
  #endif
Index: liboctave/dbleAEPBAL.h
===================================================================
RCS file: /cvs/octave/liboctave/dbleAEPBAL.h,v
retrieving revision 1.19
diff -p -c -r1.19 dbleAEPBAL.h
*** liboctave/dbleAEPBAL.h      26 Apr 2005 19:24:28 -0000      1.19
--- liboctave/dbleAEPBAL.h      17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,35 ****
--- 30,36 ----
  #include "dMatrix.h"
  
  class
+ OCTAVE_API
  AEPBALANCE
  {
  public:
Index: liboctave/dbleCHOL.h
===================================================================
RCS file: /cvs/octave/liboctave/dbleCHOL.h,v
retrieving revision 1.18
diff -p -c -r1.18 dbleCHOL.h
*** liboctave/dbleCHOL.h        6 May 2005 16:26:59 -0000       1.18
--- liboctave/dbleCHOL.h        17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "dMatrix.h"
  
  class
+ OCTAVE_API
  CHOL
  {
  public:
*************** public:
*** 54,60 ****
    // Compute the inverse of a matrix using the Cholesky factorization.
    Matrix inverse (void) const;
  
!   friend std::ostream& operator << (std::ostream& os, const CHOL& a);
  
  private:
  
--- 55,61 ----
    // Compute the inverse of a matrix using the Cholesky factorization.
    Matrix inverse (void) const;
  
!   friend OCTAVE_API std::ostream& operator << (std::ostream& os, const CHOL& 
a);
  
  private:
  
*************** private:
*** 63,69 ****
    octave_idx_type init (const Matrix& a);
  };
  
! Matrix chol2inv (const Matrix& r);
  
  #endif
  
--- 64,70 ----
    octave_idx_type init (const Matrix& a);
  };
  
! Matrix OCTAVE_API chol2inv (const Matrix& r);
  
  #endif
  
Index: liboctave/dbleDET.h
===================================================================
RCS file: /cvs/octave/liboctave/dbleDET.h,v
retrieving revision 1.20
diff -p -c -r1.20 dbleDET.h
*** liboctave/dbleDET.h 24 Apr 2006 19:13:07 -0000      1.20
--- liboctave/dbleDET.h 17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  // FIXME -- we could use templates here; compare with CmplxDET.h
  
  class
+ OCTAVE_API
  DET
  {
  friend class Matrix;
Index: liboctave/dbleHESS.h
===================================================================
RCS file: /cvs/octave/liboctave/dbleHESS.h,v
retrieving revision 1.19
diff -p -c -r1.19 dbleHESS.h
*** liboctave/dbleHESS.h        26 Apr 2005 19:24:28 -0000      1.19
--- liboctave/dbleHESS.h        17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "dMatrix.h"
  
  class
+ OCTAVE_API
  HESS
  {
  public:
Index: liboctave/dbleLU.h
===================================================================
RCS file: /cvs/octave/liboctave/dbleLU.h,v
retrieving revision 1.19
diff -p -c -r1.19 dbleLU.h
*** liboctave/dbleLU.h  26 Apr 2005 19:24:28 -0000      1.19
--- liboctave/dbleLU.h  17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 28,33 ****
--- 28,34 ----
  #include "dMatrix.h"
  
  class
+ OCTAVE_API
  LU : public base_lu <Matrix, double, Matrix, double>
  {
  public:
Index: liboctave/dbleQR.h
===================================================================
RCS file: /cvs/octave/liboctave/dbleQR.h,v
retrieving revision 1.21
diff -p -c -r1.21 dbleQR.h
*** liboctave/dbleQR.h  26 Apr 2005 19:24:28 -0000      1.21
--- liboctave/dbleQR.h  17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "dMatrix.h"
  
  class
+ OCTAVE_API
  QR
  {
  public:
Index: liboctave/dbleQRP.h
===================================================================
RCS file: /cvs/octave/liboctave/dbleQRP.h,v
retrieving revision 1.19
diff -p -c -r1.19 dbleQRP.h
*** liboctave/dbleQRP.h 26 Apr 2005 19:24:28 -0000      1.19
--- liboctave/dbleQRP.h 17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "dbleQR.h"
  
  class
+ OCTAVE_API
  QRP : public QR
  {
  public:
Index: liboctave/dbleSCHUR.h
===================================================================
RCS file: /cvs/octave/liboctave/dbleSCHUR.h,v
retrieving revision 1.22
diff -p -c -r1.22 dbleSCHUR.h
*** liboctave/dbleSCHUR.h       26 Apr 2005 19:24:28 -0000      1.22
--- liboctave/dbleSCHUR.h       17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,35 ****
--- 30,36 ----
  #include "dMatrix.h"
  
  class
+ OCTAVE_API
  SCHUR
  {
  public:
Index: liboctave/dbleSVD.h
===================================================================
RCS file: /cvs/octave/liboctave/dbleSVD.h,v
retrieving revision 1.28
diff -p -c -r1.28 dbleSVD.h
*** liboctave/dbleSVD.h 26 Apr 2005 19:24:28 -0000      1.28
--- liboctave/dbleSVD.h 17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,35 ****
--- 30,36 ----
  #include "dMatrix.h"
  
  class
+ OCTAVE_API
  SVD
  {
  public:
Index: liboctave/dir-ops.h
===================================================================
RCS file: /cvs/octave/liboctave/dir-ops.h,v
retrieving revision 1.8
diff -p -c -r1.8 dir-ops.h
*** liboctave/dir-ops.h 26 Apr 2005 19:24:28 -0000      1.8
--- liboctave/dir-ops.h 17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "str-vec.h"
  
  class
+ OCTAVE_API
  dir_entry
  {
  public:
Index: liboctave/file-ops.h
===================================================================
RCS file: /cvs/octave/liboctave/file-ops.h,v
retrieving revision 1.23
diff -p -c -r1.23 file-ops.h
*** liboctave/file-ops.h        29 Sep 2005 22:49:43 -0000      1.23
--- liboctave/file-ops.h        17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 33,38 ****
--- 33,39 ----
  #include "str-vec.h"
  
  struct
+ OCTAVE_API
  file_ops
  {
    static int mkdir (const std::string&, mode_t);
Index: liboctave/file-stat.h
===================================================================
RCS file: /cvs/octave/liboctave/file-stat.h,v
retrieving revision 1.7
diff -p -c -r1.7 file-stat.h
*** liboctave/file-stat.h       29 Sep 2005 22:49:43 -0000      1.7
--- liboctave/file-stat.h       17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 33,38 ****
--- 33,39 ----
  #endif
  
  class
+ OCTAVE_API
  file_stat
  {
  public:
Index: liboctave/glob-match.h
===================================================================
RCS file: /cvs/octave/liboctave/glob-match.h,v
retrieving revision 1.4
diff -p -c -r1.4 glob-match.h
*** liboctave/glob-match.h      26 Apr 2005 19:24:29 -0000      1.4
--- liboctave/glob-match.h      17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,35 ****
--- 30,36 ----
  #include "str-vec.h"
  
  class
+ OCTAVE_API
  glob_match
  {
  public:
Index: liboctave/idx-vector.h
===================================================================
RCS file: /cvs/octave/liboctave/idx-vector.h,v
retrieving revision 1.50
diff -p -c -r1.50 idx-vector.h
*** liboctave/idx-vector.h      2 May 2006 19:40:20 -0000       1.50
--- liboctave/idx-vector.h      17 Oct 2006 11:07:41 -0000
*************** class NDArray;
*** 36,46 ****
--- 36,48 ----
  class Range;
  
  class
+ OCTAVE_API
  idx_vector
  {
  private:
  
    class
+   OCTAVE_API
    idx_vector_rep
    {
    public:
Index: liboctave/int16NDArray.cc
===================================================================
RCS file: /cvs/octave/liboctave/int16NDArray.cc,v
retrieving revision 1.7
diff -p -c -r1.7 int16NDArray.cc
*** liboctave/int16NDArray.cc   26 Apr 2005 19:24:29 -0000      1.7
--- liboctave/int16NDArray.cc   17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,42 ****
  
  #include "intNDArray.cc"
  
! template class intNDArray<octave_int16>;
  
! template
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_int16>& a);
  
! template
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_int16>& a);
  
--- 30,42 ----
  
  #include "intNDArray.cc"
  
! template class OCTAVE_API intNDArray<octave_int16>;
  
! template OCTAVE_API
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_int16>& a);
  
! template OCTAVE_API
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_int16>& a);
  
Index: liboctave/int32NDArray.cc
===================================================================
RCS file: /cvs/octave/liboctave/int32NDArray.cc,v
retrieving revision 1.7
diff -p -c -r1.7 int32NDArray.cc
*** liboctave/int32NDArray.cc   26 Apr 2005 19:24:29 -0000      1.7
--- liboctave/int32NDArray.cc   17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,42 ****
  
  #include "intNDArray.cc"
  
! template class intNDArray<octave_int32>;
  
! template
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_int32>& a);
  
! template
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_int32>& a);
  
--- 30,42 ----
  
  #include "intNDArray.cc"
  
! template class OCTAVE_API intNDArray<octave_int32>;
  
! template OCTAVE_API
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_int32>& a);
  
! template OCTAVE_API
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_int32>& a);
  
Index: liboctave/int64NDArray.cc
===================================================================
RCS file: /cvs/octave/liboctave/int64NDArray.cc,v
retrieving revision 1.5
diff -p -c -r1.5 int64NDArray.cc
*** liboctave/int64NDArray.cc   26 Apr 2005 19:24:29 -0000      1.5
--- liboctave/int64NDArray.cc   17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,42 ****
  
  #include "intNDArray.cc"
  
! template class intNDArray<octave_int64>;
  
! template
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_int64>& a);
  
! template
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_int64>& a);
  
--- 30,42 ----
  
  #include "intNDArray.cc"
  
! template class OCTAVE_API intNDArray<octave_int64>;
  
! template OCTAVE_API
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_int64>& a);
  
! template OCTAVE_API
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_int64>& a);
  
Index: liboctave/int8NDArray.cc
===================================================================
RCS file: /cvs/octave/liboctave/int8NDArray.cc,v
retrieving revision 1.7
diff -p -c -r1.7 int8NDArray.cc
*** liboctave/int8NDArray.cc    26 Apr 2005 19:24:29 -0000      1.7
--- liboctave/int8NDArray.cc    17 Oct 2006 11:07:41 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,42 ****
  
  #include "intNDArray.cc"
  
! template class intNDArray<octave_int8>;
  
! template
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_int8>& a);
  
! template
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_int8>& a);
  
--- 30,42 ----
  
  #include "intNDArray.cc"
  
! template class OCTAVE_API intNDArray<octave_int8>;
  
! template OCTAVE_API
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_int8>& a);
  
! template OCTAVE_API
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_int8>& a);
  
Index: liboctave/lo-cutils.c
===================================================================
RCS file: /cvs/octave/liboctave/lo-cutils.c,v
retrieving revision 1.10
diff -p -c -r1.10 lo-cutils.c
*** liboctave/lo-cutils.c       17 Sep 2005 00:50:58 -0000      1.10
--- liboctave/lo-cutils.c       17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc.
*** 53,66 ****
  
  #include "syswait.h"
  
! void
  octave_qsort (void *base, size_t n, size_t size,
              int (*cmp) (const void *, const void *))
  {
    qsort (base, n, size, cmp);
  }
  
! char *
  oct_strptime (const char *buf, const char *format, struct tm *tm)
  {
    return (char *) strptime (buf, format, tm);
--- 53,66 ----
  
  #include "syswait.h"
  
! OCTAVE_API void
  octave_qsort (void *base, size_t n, size_t size,
              int (*cmp) (const void *, const void *))
  {
    qsort (base, n, size, cmp);
  }
  
! OCTAVE_API char *
  oct_strptime (const char *buf, const char *format, struct tm *tm)
  {
    return (char *) strptime (buf, format, tm);
*************** gethostname (char *name, int namelen)
*** 92,98 ****
  
  #endif
  
! int
  octave_gethostname (char *name, int namelen)
  {
    return gethostname (name, namelen);
--- 92,98 ----
  
  #endif
  
! OCTAVE_API int
  octave_gethostname (char *name, int namelen)
  {
    return gethostname (name, namelen);
*************** octave_gethostname (char *name, int name
*** 102,115 ****
  #include <windows.h>
  
  /* Need this since in C++ can't cast from int(*)() to void* */
! void *
  octave_w32_library_search (HINSTANCE handle, const char * name)
  {
    return (GetProcAddress (handle, name));
  }
  #endif
  
! pid_t
  octave_waitpid (pid_t pid, int *status, int options)
  {
    return WAITPID (pid, status, options);
--- 102,115 ----
  #include <windows.h>
  
  /* Need this since in C++ can't cast from int(*)() to void* */
! OCTAVE_API void *
  octave_w32_library_search (HINSTANCE handle, const char * name)
  {
    return (GetProcAddress (handle, name));
  }
  #endif
  
! OCTAVE_API pid_t
  octave_waitpid (pid_t pid, int *status, int options)
  {
    return WAITPID (pid, status, options);
Index: liboctave/lo-ieee.h
===================================================================
RCS file: /cvs/octave/liboctave/lo-ieee.h,v
retrieving revision 1.18
diff -p -c -r1.18 lo-ieee.h
*** liboctave/lo-ieee.h 24 Apr 2006 19:13:07 -0000      1.18
--- liboctave/lo-ieee.h 17 Oct 2006 11:07:42 -0000
*************** extern "C" {
*** 29,47 ****
  #endif
  
  /*  Octave's idea of infinity.  */
! extern double octave_Inf;
  
  /* Octave's idea of a missing value.  */
! extern double octave_NA;
  
  /* Octave's idea of not a number.  */
! extern double octave_NaN;
  
  /* FIXME -- this code assumes that a double has twice the
     number of bits as an int */
  
! extern int lo_ieee_hw;
! extern int lo_ieee_lw;
  
  typedef union
  {
--- 29,47 ----
  #endif
  
  /*  Octave's idea of infinity.  */
! extern OCTAVE_API double octave_Inf;
  
  /* Octave's idea of a missing value.  */
! extern OCTAVE_API double octave_NA;
  
  /* Octave's idea of not a number.  */
! extern OCTAVE_API double octave_NaN;
  
  /* FIXME -- this code assumes that a double has twice the
     number of bits as an int */
  
! extern OCTAVE_API int lo_ieee_hw;
! extern OCTAVE_API int lo_ieee_lw;
  
  typedef union
  {
*************** typedef union
*** 52,76 ****
  #define LO_IEEE_NA_HW 0x7ff00000
  #define LO_IEEE_NA_LW 1954
  
! extern void octave_ieee_init (void);
  
  #if defined (SCO)
  extern int isnan (double);
  extern int isinf (double);
  #endif
  
! extern int lo_ieee_isnan (double x);
! extern int lo_ieee_finite (double x);
! extern int lo_ieee_isinf (double x);
! 
! extern int lo_ieee_is_NA (double);
! extern int lo_ieee_is_NaN_or_NA (double) GCC_ATTR_DEPRECATED;
! 
! extern double lo_ieee_inf_value (void);
! extern double lo_ieee_na_value (void);
! extern double lo_ieee_nan_value (void);
  
! extern int lo_ieee_signbit (double);
  
  #ifdef        __cplusplus
  }
--- 52,76 ----
  #define LO_IEEE_NA_HW 0x7ff00000
  #define LO_IEEE_NA_LW 1954
  
! extern OCTAVE_API void octave_ieee_init (void);
  
  #if defined (SCO)
  extern int isnan (double);
  extern int isinf (double);
  #endif
  
! extern OCTAVE_API int lo_ieee_isnan (double x);
! extern OCTAVE_API int lo_ieee_finite (double x);
! extern OCTAVE_API int lo_ieee_isinf (double x);
! 
! extern OCTAVE_API int lo_ieee_is_NA (double);
! extern OCTAVE_API int lo_ieee_is_NaN_or_NA (double) GCC_ATTR_DEPRECATED;
! 
! extern OCTAVE_API double lo_ieee_inf_value (void);
! extern OCTAVE_API double lo_ieee_na_value (void);
! extern OCTAVE_API double lo_ieee_nan_value (void);
  
! extern OCTAVE_API int lo_ieee_signbit (double);
  
  #ifdef        __cplusplus
  }
Index: liboctave/lo-mappers.h
===================================================================
RCS file: /cvs/octave/liboctave/lo-mappers.h,v
retrieving revision 1.17
diff -p -c -r1.17 lo-mappers.h
*** liboctave/lo-mappers.h      26 Jul 2006 17:19:10 -0000      1.17
--- liboctave/lo-mappers.h      17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 26,73 ****
  
  #include "oct-cmplx.h"
  
! extern double arg (double x);
! extern double conj (double x);
! extern double fix (double x);
! extern double imag (double x);
! extern double real (double x);
! extern double xround (double x);
! extern double signum (double x);
! extern double xlog2 (double x); 
! extern double xexp2 (double x);
! 
! extern bool xisnan (double x);
! extern bool xfinite (double x);
! extern bool xisinf (double x);
! 
! extern bool octave_is_NA (double x);
! extern bool octave_is_NaN_or_NA (double x) GCC_ATTR_DEPRECATED;
! 
! extern double xmin (double x, double y);
! extern double xmax (double x, double y);
! 
! extern Complex acos (const Complex& x);
! extern Complex acosh (const Complex& x);
! extern Complex asin (const Complex& x);
! extern Complex asinh (const Complex& x);
! extern Complex atan (const Complex& x);
! extern Complex atanh (const Complex& x);
! 
! extern Complex ceil (const Complex& x);
! extern Complex fix (const Complex& x);
! extern Complex floor (const Complex& x);
! extern Complex xround (const Complex& x);
! extern Complex signum (const Complex& x);
! 
! extern bool xisnan (const Complex& x);
! extern bool xfinite (const Complex& x);
! extern bool xisinf (const Complex& x);
  
! extern bool octave_is_NA (const Complex& x);
! extern bool octave_is_NaN_or_NA (const Complex& x);
  
! extern Complex xmin (const Complex& x, const Complex& y);
! extern Complex xmax (const Complex& x, const Complex& y);
  
  #endif
  
--- 26,73 ----
  
  #include "oct-cmplx.h"
  
! extern OCTAVE_API double arg (double x);
! extern OCTAVE_API double conj (double x);
! extern OCTAVE_API double fix (double x);
! extern OCTAVE_API double imag (double x);
! extern OCTAVE_API double real (double x);
! extern OCTAVE_API double xround (double x);
! extern OCTAVE_API double signum (double x);
! extern OCTAVE_API double xlog2 (double x); 
! extern OCTAVE_API double xexp2 (double x);
! 
! extern OCTAVE_API bool xisnan (double x);
! extern OCTAVE_API bool xfinite (double x);
! extern OCTAVE_API bool xisinf (double x);
! 
! extern OCTAVE_API bool octave_is_NA (double x);
! extern OCTAVE_API bool octave_is_NaN_or_NA (double x) GCC_ATTR_DEPRECATED;
! 
! extern OCTAVE_API double xmin (double x, double y);
! extern OCTAVE_API double xmax (double x, double y);
! 
! extern OCTAVE_API Complex acos (const Complex& x);
! extern OCTAVE_API Complex acosh (const Complex& x);
! extern OCTAVE_API Complex asin (const Complex& x);
! extern OCTAVE_API Complex asinh (const Complex& x);
! extern OCTAVE_API Complex atan (const Complex& x);
! extern OCTAVE_API Complex atanh (const Complex& x);
! 
! extern OCTAVE_API Complex ceil (const Complex& x);
! extern OCTAVE_API Complex fix (const Complex& x);
! extern OCTAVE_API Complex floor (const Complex& x);
! extern OCTAVE_API Complex xround (const Complex& x);
! extern OCTAVE_API Complex signum (const Complex& x);
! 
! extern OCTAVE_API bool xisnan (const Complex& x);
! extern OCTAVE_API bool xfinite (const Complex& x);
! extern OCTAVE_API bool xisinf (const Complex& x);
  
! extern OCTAVE_API bool octave_is_NA (const Complex& x);
! extern OCTAVE_API bool octave_is_NaN_or_NA (const Complex& x);
  
! extern OCTAVE_API Complex xmin (const Complex& x, const Complex& y);
! extern OCTAVE_API Complex xmax (const Complex& x, const Complex& y);
  
  #endif
  
Index: liboctave/lo-specfun.h
===================================================================
RCS file: /cvs/octave/liboctave/lo-specfun.h,v
retrieving revision 1.7
diff -p -c -r1.7 lo-specfun.h
*** liboctave/lo-specfun.h      26 Apr 2005 19:24:29 -0000      1.7
--- liboctave/lo-specfun.h      17 Oct 2006 11:07:42 -0000
*************** class ComplexColumnVector;
*** 38,293 ****
  class Range;
  
  #if !defined (HAVE_ACOSH)
! extern double acosh (double);
  #endif
  
  #if !defined (HAVE_ASINH)
! extern double asinh (double);
  #endif
  
  #if !defined (HAVE_ATANH)
! extern double atanh (double);
  #endif
  
  #if !defined (HAVE_ERF)
! extern double erf (double);
  #endif
  
  #if !defined (HAVE_ERFC)
! extern double erfc (double);
  #endif
  
! extern double xgamma (double x);
! extern double xlgamma (double x);
  
! extern Complex
  besselj (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr);
  
! extern Complex
  bessely (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr);
  
! extern Complex
  besseli (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr);
  
! extern Complex
  besselk (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr);
  
! extern Complex
  besselh1 (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr);
  
! extern Complex
  besselh2 (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr);
  
! extern ComplexMatrix
  besselj (double alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  bessely (double alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besseli (double alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselk (double alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselh1 (double alpha, const ComplexMatrix& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselh2 (double alpha, const ComplexMatrix& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselj (const Matrix& alpha, const Complex& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  bessely (const Matrix& alpha, const Complex& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besseli (const Matrix& alpha, const Complex& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselk (const Matrix& alpha, const Complex& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselh1 (const Matrix& alpha, const Complex& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselh2 (const Matrix& alpha, const Complex& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselj (const Matrix& alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  bessely (const Matrix& alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besseli (const Matrix& alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselk (const Matrix& alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselh1 (const Matrix& alpha, const ComplexMatrix& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselh2 (const Matrix& alpha, const ComplexMatrix& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besselj (double alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  bessely (double alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besseli (double alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besselk (double alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besselh1 (double alpha, const ComplexNDArray& x, bool scaled,
          ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besselh2 (double alpha, const ComplexNDArray& x, bool scaled,
          ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besselj (const NDArray& alpha, const Complex& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  bessely (const NDArray& alpha, const Complex& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besseli (const NDArray& alpha, const Complex& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besselk (const NDArray& alpha, const Complex& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besselh1 (const NDArray& alpha, const Complex& x, bool scaled,
          ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besselh2 (const NDArray& alpha, const Complex& x, bool scaled,
          ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besselj (const NDArray& alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  bessely (const NDArray& alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besseli (const NDArray& alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besselk (const NDArray& alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besselh1 (const NDArray& alpha, const ComplexNDArray& x, bool scaled,
          ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  besselh2 (const NDArray& alpha, const ComplexNDArray& x, bool scaled,
          ArrayN<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselj (const RowVector& alpha, const ComplexColumnVector& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  bessely (const RowVector& alpha, const ComplexColumnVector& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besseli (const RowVector& alpha, const ComplexColumnVector& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselk (const RowVector& alpha, const ComplexColumnVector& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselh1 (const RowVector& alpha, const ComplexColumnVector& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  besselh2 (const RowVector& alpha, const ComplexColumnVector& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern Complex airy (const Complex& z, bool deriv, bool scaled, 
octave_idx_type& ierr);
! extern Complex biry (const Complex& z, bool deriv, bool scaled, 
octave_idx_type& ierr);
  
! extern ComplexMatrix
  airy (const ComplexMatrix& z, bool deriv, bool scaled, 
Array2<octave_idx_type>& ierr);
  
! extern ComplexMatrix
  biry (const ComplexMatrix& z, bool deriv, bool scaled, 
Array2<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  airy (const ComplexNDArray& z, bool deriv, bool scaled, 
ArrayN<octave_idx_type>& ierr);
  
! extern ComplexNDArray
  biry (const ComplexNDArray& z, bool deriv, bool scaled, 
ArrayN<octave_idx_type>& ierr);
  
! extern double betainc (double x, double a, double b);
! extern Matrix betainc (double x, double a, const Matrix& b);
! extern Matrix betainc (double x, const Matrix& a, double b);
! extern Matrix betainc (double x, const Matrix& a, const Matrix& b);
! 
! extern NDArray betainc (double x, double a, const NDArray& b);
! extern NDArray betainc (double x, const NDArray& a, double b);
! extern NDArray betainc (double x, const NDArray& a, const NDArray& b);
! 
! extern Matrix betainc (const Matrix& x, double a, double b);
! extern Matrix betainc (const Matrix& x, double a, const Matrix& b);
! extern Matrix betainc (const Matrix& x, const Matrix& a, double b);
! extern Matrix betainc (const Matrix& x, const Matrix& a, const Matrix& b);
! 
! extern NDArray betainc (const NDArray& x, double a, double b);
! extern NDArray betainc (const NDArray& x, double a, const NDArray& b);
! extern NDArray betainc (const NDArray& x, const NDArray& a, double b);
! extern NDArray betainc (const NDArray& x, const NDArray& a, const NDArray& b);
! 
! extern double gammainc (double x, double a, bool& err);
! extern Matrix gammainc (double x, const Matrix& a);
! extern Matrix gammainc (const Matrix& x, double a);
! extern Matrix gammainc (const Matrix& x, const Matrix& a);
! 
! extern NDArray gammainc (double x, const NDArray& a);
! extern NDArray gammainc (const NDArray& x, double a);
! extern NDArray gammainc (const NDArray& x, const NDArray& a);
  
  inline double gammainc (double x, double a)
  {
--- 38,293 ----
  class Range;
  
  #if !defined (HAVE_ACOSH)
! extern OCTAVE_API double acosh (double);
  #endif
  
  #if !defined (HAVE_ASINH)
! extern OCTAVE_API double asinh (double);
  #endif
  
  #if !defined (HAVE_ATANH)
! extern OCTAVE_API double atanh (double);
  #endif
  
  #if !defined (HAVE_ERF)
! extern OCTAVE_API double erf (double);
  #endif
  
  #if !defined (HAVE_ERFC)
! extern OCTAVE_API double erfc (double);
  #endif
  
! extern OCTAVE_API double xgamma (double x);
! extern OCTAVE_API double xlgamma (double x);
  
! extern OCTAVE_API Complex
  besselj (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr);
  
! extern OCTAVE_API Complex
  bessely (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr);
  
! extern OCTAVE_API Complex
  besseli (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr);
  
! extern OCTAVE_API Complex
  besselk (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr);
  
! extern OCTAVE_API Complex
  besselh1 (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr);
  
! extern OCTAVE_API Complex
  besselh2 (double alpha, const Complex& x, bool scaled, octave_idx_type& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselj (double alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  bessely (double alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besseli (double alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselk (double alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselh1 (double alpha, const ComplexMatrix& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselh2 (double alpha, const ComplexMatrix& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselj (const Matrix& alpha, const Complex& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  bessely (const Matrix& alpha, const Complex& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besseli (const Matrix& alpha, const Complex& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselk (const Matrix& alpha, const Complex& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselh1 (const Matrix& alpha, const Complex& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselh2 (const Matrix& alpha, const Complex& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselj (const Matrix& alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  bessely (const Matrix& alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besseli (const Matrix& alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselk (const Matrix& alpha, const ComplexMatrix& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselh1 (const Matrix& alpha, const ComplexMatrix& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselh2 (const Matrix& alpha, const ComplexMatrix& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besselj (double alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  bessely (double alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besseli (double alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besselk (double alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besselh1 (double alpha, const ComplexNDArray& x, bool scaled,
          ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besselh2 (double alpha, const ComplexNDArray& x, bool scaled,
          ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besselj (const NDArray& alpha, const Complex& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  bessely (const NDArray& alpha, const Complex& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besseli (const NDArray& alpha, const Complex& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besselk (const NDArray& alpha, const Complex& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besselh1 (const NDArray& alpha, const Complex& x, bool scaled,
          ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besselh2 (const NDArray& alpha, const Complex& x, bool scaled,
          ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besselj (const NDArray& alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  bessely (const NDArray& alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besseli (const NDArray& alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besselk (const NDArray& alpha, const ComplexNDArray& x, bool scaled,
         ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besselh1 (const NDArray& alpha, const ComplexNDArray& x, bool scaled,
          ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  besselh2 (const NDArray& alpha, const ComplexNDArray& x, bool scaled,
          ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselj (const RowVector& alpha, const ComplexColumnVector& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  bessely (const RowVector& alpha, const ComplexColumnVector& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besseli (const RowVector& alpha, const ComplexColumnVector& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselk (const RowVector& alpha, const ComplexColumnVector& x, bool scaled,
         Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselh1 (const RowVector& alpha, const ComplexColumnVector& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  besselh2 (const RowVector& alpha, const ComplexColumnVector& x, bool scaled,
          Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API Complex airy (const Complex& z, bool deriv, bool scaled, 
octave_idx_type& ierr);
! extern OCTAVE_API Complex biry (const Complex& z, bool deriv, bool scaled, 
octave_idx_type& ierr);
  
! extern OCTAVE_API ComplexMatrix
  airy (const ComplexMatrix& z, bool deriv, bool scaled, 
Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexMatrix
  biry (const ComplexMatrix& z, bool deriv, bool scaled, 
Array2<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  airy (const ComplexNDArray& z, bool deriv, bool scaled, 
ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API ComplexNDArray
  biry (const ComplexNDArray& z, bool deriv, bool scaled, 
ArrayN<octave_idx_type>& ierr);
  
! extern OCTAVE_API double betainc (double x, double a, double b);
! extern OCTAVE_API Matrix betainc (double x, double a, const Matrix& b);
! extern OCTAVE_API Matrix betainc (double x, const Matrix& a, double b);
! extern OCTAVE_API Matrix betainc (double x, const Matrix& a, const Matrix& b);
! 
! extern OCTAVE_API NDArray betainc (double x, double a, const NDArray& b);
! extern OCTAVE_API NDArray betainc (double x, const NDArray& a, double b);
! extern OCTAVE_API NDArray betainc (double x, const NDArray& a, const NDArray& 
b);
! 
! extern OCTAVE_API Matrix betainc (const Matrix& x, double a, double b);
! extern OCTAVE_API Matrix betainc (const Matrix& x, double a, const Matrix& b);
! extern OCTAVE_API Matrix betainc (const Matrix& x, const Matrix& a, double b);
! extern OCTAVE_API Matrix betainc (const Matrix& x, const Matrix& a, const 
Matrix& b);
! 
! extern OCTAVE_API NDArray betainc (const NDArray& x, double a, double b);
! extern OCTAVE_API NDArray betainc (const NDArray& x, double a, const NDArray& 
b);
! extern OCTAVE_API NDArray betainc (const NDArray& x, const NDArray& a, double 
b);
! extern OCTAVE_API NDArray betainc (const NDArray& x, const NDArray& a, const 
NDArray& b);
! 
! extern OCTAVE_API double gammainc (double x, double a, bool& err);
! extern OCTAVE_API Matrix gammainc (double x, const Matrix& a);
! extern OCTAVE_API Matrix gammainc (const Matrix& x, double a);
! extern OCTAVE_API Matrix gammainc (const Matrix& x, const Matrix& a);
! 
! extern OCTAVE_API NDArray gammainc (double x, const NDArray& a);
! extern OCTAVE_API NDArray gammainc (const NDArray& x, double a);
! extern OCTAVE_API NDArray gammainc (const NDArray& x, const NDArray& a);
  
  inline double gammainc (double x, double a)
  {
Index: liboctave/lo-utils.h
===================================================================
RCS file: /cvs/octave/liboctave/lo-utils.h,v
retrieving revision 1.16
diff -p -c -r1.16 lo-utils.h
*** liboctave/lo-utils.h        17 Sep 2005 00:50:58 -0000      1.16
--- liboctave/lo-utils.h        17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 33,73 ****
  #include "oct-types.h"
  #include "syswait.h"
  
! extern octave_idx_type NINTbig (double x);
! extern int NINT (double x);
! extern double D_NINT (double x);
  
! extern char *strsave (const char *);
  
! extern void octave_putenv (const std::string&, const std::string&);
  
! extern std::string octave_fgets (std::FILE *);
! extern std::string octave_fgetl (std::FILE *);
  
! extern std::string octave_fgets (std::FILE *, bool& eof);
! extern std::string octave_fgetl (std::FILE *, bool& eof);
  
! extern "C" int octave_gethostname (char *, int);
  
! extern "C" void octave_qsort (void *base, size_t n, size_t size,
                              int (*cmp) (const void *, const void *));
  
! extern "C" char *oct_strptime (const char *buf, const char *format,
                               struct tm *tm);
  
! extern double octave_read_double (std::istream& is);
! extern Complex octave_read_complex (std::istream& is);
  
! extern void octave_write_double (std::ostream& os, double dval);
! extern void octave_write_complex (std::ostream& os, const Complex& cval);
  
  #ifdef HAVE_LOADLIBRARY_API
  #include <windows.h>
! extern "C" void * octave_w32_library_search (HINSTANCE handle, const char 
*name);
  #endif
  #endif
  
! extern "C" pid_t octave_waitpid (pid_t pid, int *status, int options);
  
  /*
  ;;; Local Variables: ***
--- 33,75 ----
  #include "oct-types.h"
  #include "syswait.h"
  
! extern OCTAVE_API octave_idx_type NINTbig (double x);
! extern OCTAVE_API int NINT (double x);
! extern OCTAVE_API double D_NINT (double x);
  
! extern OCTAVE_API char *strsave (const char *);
  
! extern OCTAVE_API void octave_putenv (const std::string&, const std::string&);
  
! extern OCTAVE_API std::string octave_fgets (std::FILE *);
! extern OCTAVE_API std::string octave_fgetl (std::FILE *);
  
! extern OCTAVE_API std::string octave_fgets (std::FILE *, bool& eof);
! extern OCTAVE_API std::string octave_fgetl (std::FILE *, bool& eof);
  
! extern "C" OCTAVE_API int octave_gethostname (char *, int);
  
! extern "C" OCTAVE_API void octave_qsort (void *base, size_t n, size_t size,
                              int (*cmp) (const void *, const void *));
  
! extern "C" OCTAVE_API char *oct_strptime (const char *buf, const char *format,
                               struct tm *tm);
  
! extern OCTAVE_API double octave_read_double (std::istream& is);
! extern OCTAVE_API Complex octave_read_complex (std::istream& is);
  
! extern OCTAVE_API void octave_write_double (std::ostream& os, double dval);
! extern OCTAVE_API void octave_write_complex (std::ostream& os, const Complex& 
cval);
  
  #ifdef HAVE_LOADLIBRARY_API
  #include <windows.h>
! extern "C" OCTAVE_API void * octave_w32_library_search (HINSTANCE handle, 
const char *name);
! #undef min
! #undef max
  #endif
  #endif
  
! extern "C" OCTAVE_API pid_t octave_waitpid (pid_t pid, int *status, int 
options);
  
  /*
  ;;; Local Variables: ***
Index: liboctave/mach-info.h
===================================================================
RCS file: /cvs/octave/liboctave/mach-info.h,v
retrieving revision 1.10
diff -p -c -r1.10 mach-info.h
*** liboctave/mach-info.h       26 Apr 2005 19:24:29 -0000      1.10
--- liboctave/mach-info.h       17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 27,32 ****
--- 27,33 ----
  #include <string>
  
  class
+ OCTAVE_API
  oct_mach_info
  {
  protected:
Index: liboctave/mx-op-defs.h
===================================================================
RCS file: /cvs/octave/liboctave/mx-op-defs.h,v
retrieving revision 1.12
diff -p -c -r1.12 mx-op-defs.h
*** liboctave/mx-op-defs.h      26 Apr 2005 19:24:29 -0000      1.12
--- liboctave/mx-op-defs.h      17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 27,48 ****
  #include "mx-inlines.cc"
  
  #define BIN_OP_DECL(R, OP, X, Y) \
!   extern R OP (const X&, const Y&)
  
  class boolMatrix;
  class boolNDArray;
  
  #define CMP_OP_DECL(OP, X, Y) \
!   extern boolMatrix OP (const X&, const Y&)
  
  #define NDCMP_OP_DECL(OP, X, Y) \
!   extern boolNDArray OP (const X&, const Y&)
  
  #define BOOL_OP_DECL(OP, X, Y) \
!   extern boolMatrix OP (const X&, const Y&)
  
  #define NDBOOL_OP_DECL(OP, X, Y) \
!   extern boolNDArray OP (const X&, const Y&)
  
  // vector by scalar operations.
  
--- 27,48 ----
  #include "mx-inlines.cc"
  
  #define BIN_OP_DECL(R, OP, X, Y) \
!   extern OCTAVE_API R OP (const X&, const Y&)
  
  class boolMatrix;
  class boolNDArray;
  
  #define CMP_OP_DECL(OP, X, Y) \
!   extern OCTAVE_API boolMatrix OP (const X&, const Y&)
  
  #define NDCMP_OP_DECL(OP, X, Y) \
!   extern OCTAVE_API boolNDArray OP (const X&, const Y&)
  
  #define BOOL_OP_DECL(OP, X, Y) \
!   extern OCTAVE_API boolMatrix OP (const X&, const Y&)
  
  #define NDBOOL_OP_DECL(OP, X, Y) \
!   extern OCTAVE_API boolNDArray OP (const X&, const Y&)
  
  // vector by scalar operations.
  
Index: liboctave/oct-alloc.h
===================================================================
RCS file: /cvs/octave/liboctave/oct-alloc.h,v
retrieving revision 1.8
diff -p -c -r1.8 oct-alloc.h
*** liboctave/oct-alloc.h       26 Apr 2005 19:24:29 -0000      1.8
--- liboctave/oct-alloc.h       17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 25,30 ****
--- 25,31 ----
  #define octave_oct_alloc_h 1
  
  class
+ OCTAVE_API
  octave_allocator
  {
  public:
Index: liboctave/oct-env.h
===================================================================
RCS file: /cvs/octave/liboctave/oct-env.h,v
retrieving revision 1.5
diff -p -c -r1.5 oct-env.h
*** liboctave/oct-env.h 12 Oct 2005 23:53:36 -0000      1.5
--- liboctave/oct-env.h 17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 27,32 ****
--- 27,33 ----
  #include <string>
  
  class
+ OCTAVE_API
  octave_env
  {
  protected:
Index: liboctave/oct-group.h
===================================================================
RCS file: /cvs/octave/liboctave/oct-group.h,v
retrieving revision 1.4
diff -p -c -r1.4 oct-group.h
*** liboctave/oct-group.h       26 Apr 2005 19:24:29 -0000      1.4
--- liboctave/oct-group.h       17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 33,38 ****
--- 33,39 ----
  #include "str-vec.h"
  
  class
+ OCTAVE_API
  octave_group
  {
  public:
Index: liboctave/oct-inttypes.cc
===================================================================
RCS file: /cvs/octave/liboctave/oct-inttypes.cc,v
retrieving revision 1.3
diff -p -c -r1.3 oct-inttypes.cc
*** liboctave/oct-inttypes.cc   23 May 2006 06:05:14 -0000      1.3
--- liboctave/oct-inttypes.cc   17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 28,34 ****
  #include "oct-inttypes.h"
  
  #define INSTANTIATE_INT_DOUBLE_BIN_OP(T, OP) \
!   template octave_int<T> operator OP (const octave_int<T>&, double)
  
  #define INSTANTIATE_INT_DOUBLE_BIN_OPS(T) \
    INSTANTIATE_INT_DOUBLE_BIN_OP (T, +); \
--- 28,34 ----
  #include "oct-inttypes.h"
  
  #define INSTANTIATE_INT_DOUBLE_BIN_OP(T, OP) \
!   template OCTAVE_API octave_int<T> operator OP (const octave_int<T>&, double)
  
  #define INSTANTIATE_INT_DOUBLE_BIN_OPS(T) \
    INSTANTIATE_INT_DOUBLE_BIN_OP (T, +); \
*************** Software Foundation, Inc., 51 Franklin S
*** 37,43 ****
    INSTANTIATE_INT_DOUBLE_BIN_OP (T, /)
  
  #define INSTANTIATE_DOUBLE_INT_BIN_OP(T, OP) \
!   template octave_int<T> operator OP (double, const octave_int<T>&)
  
  #define INSTANTIATE_DOUBLE_INT_BIN_OPS(T) \
    INSTANTIATE_DOUBLE_INT_BIN_OP (T, +); \
--- 37,43 ----
    INSTANTIATE_INT_DOUBLE_BIN_OP (T, /)
  
  #define INSTANTIATE_DOUBLE_INT_BIN_OP(T, OP) \
!   template OCTAVE_API octave_int<T> operator OP (double, const octave_int<T>&)
  
  #define INSTANTIATE_DOUBLE_INT_BIN_OPS(T) \
    INSTANTIATE_DOUBLE_INT_BIN_OP (T, +); \
*************** Software Foundation, Inc., 51 Franklin S
*** 46,52 ****
    INSTANTIATE_DOUBLE_INT_BIN_OP (T, /)
  
  #define INSTANTIATE_INT_DOUBLE_CMP_OP(T, OP) \
!   template bool operator OP (const octave_int<T>&, const double&)
  
  #define INSTANTIATE_INT_DOUBLE_CMP_OPS(T) \
    INSTANTIATE_INT_DOUBLE_CMP_OP (T, <); \
--- 46,52 ----
    INSTANTIATE_DOUBLE_INT_BIN_OP (T, /)
  
  #define INSTANTIATE_INT_DOUBLE_CMP_OP(T, OP) \
!   template OCTAVE_API bool operator OP (const octave_int<T>&, const double&)
  
  #define INSTANTIATE_INT_DOUBLE_CMP_OPS(T) \
    INSTANTIATE_INT_DOUBLE_CMP_OP (T, <); \
*************** Software Foundation, Inc., 51 Franklin S
*** 57,63 ****
    INSTANTIATE_INT_DOUBLE_CMP_OP (T, !=)
  
  #define INSTANTIATE_DOUBLE_INT_CMP_OP(T, OP) \
!   template bool operator OP (const double&, const octave_int<T>&)
  
  #define INSTANTIATE_DOUBLE_INT_CMP_OPS(T) \
    INSTANTIATE_DOUBLE_INT_CMP_OP (T, <); \
--- 57,63 ----
    INSTANTIATE_INT_DOUBLE_CMP_OP (T, !=)
  
  #define INSTANTIATE_DOUBLE_INT_CMP_OP(T, OP) \
!   template OCTAVE_API bool operator OP (const double&, const octave_int<T>&)
  
  #define INSTANTIATE_DOUBLE_INT_CMP_OPS(T) \
    INSTANTIATE_DOUBLE_INT_CMP_OP (T, <); \
*************** Software Foundation, Inc., 51 Franklin S
*** 68,74 ****
    INSTANTIATE_DOUBLE_INT_CMP_OP (T, !=)
  
  #define INSTANTIATE_INT_BITCMP_OP(T, OP) \
!   template octave_int<T> \
    operator OP (const octave_int<T>&, const octave_int<T>&)
  
  #define INSTANTIATE_INT_BITCMP_OPS(T) \
--- 68,74 ----
    INSTANTIATE_DOUBLE_INT_CMP_OP (T, !=)
  
  #define INSTANTIATE_INT_BITCMP_OP(T, OP) \
!   template OCTAVE_API octave_int<T> \
    operator OP (const octave_int<T>&, const octave_int<T>&)
  
  #define INSTANTIATE_INT_BITCMP_OPS(T) \
*************** Software Foundation, Inc., 51 Franklin S
*** 77,89 ****
    INSTANTIATE_INT_BITCMP_OP (T, ^)
  
  #define INSTANTIATE_INTTYPE(T) \
!   template class octave_int<T>; \
!   template octave_int<T> pow (const octave_int<T>&, const octave_int<T>&); \
!   template octave_int<T> pow (double, const octave_int<T>&); \
!   template octave_int<T> pow (const octave_int<T>&, double b); \
!   template std::ostream& operator << (std::ostream&, const octave_int<T>&); \
!   template std::istream& operator >> (std::istream&, octave_int<T>&); \
!   template octave_int<T> \
    bitshift (const octave_int<T>&, int, const octave_int<T>&); \
    INSTANTIATE_INT_DOUBLE_BIN_OPS (T); \
    INSTANTIATE_DOUBLE_INT_BIN_OPS (T); \
--- 77,89 ----
    INSTANTIATE_INT_BITCMP_OP (T, ^)
  
  #define INSTANTIATE_INTTYPE(T) \
!   template class OCTAVE_API octave_int<T>; \
!   template OCTAVE_API octave_int<T> pow (const octave_int<T>&, const 
octave_int<T>&); \
!   template OCTAVE_API octave_int<T> pow (double, const octave_int<T>&); \
!   template OCTAVE_API octave_int<T> pow (const octave_int<T>&, double b); \
!   template OCTAVE_API std::ostream& operator << (std::ostream&, const 
octave_int<T>&); \
!   template OCTAVE_API std::istream& operator >> (std::istream&, 
octave_int<T>&); \
!   template OCTAVE_API octave_int<T> \
    bitshift (const octave_int<T>&, int, const octave_int<T>&); \
    INSTANTIATE_INT_DOUBLE_BIN_OPS (T); \
    INSTANTIATE_DOUBLE_INT_BIN_OPS (T); \
*************** INSTANTIATE_INTTYPE_BIN_OPS (uint64_t, u
*** 184,190 ****
  INSTANTIATE_INTTYPE_BIN_OPS (uint64_t, uint64_t);
  
  #define INSTANTIATE_INTTYPE_SHIFT_OP(T, OP) \
!   template octave_int<T> operator OP (const octave_int<T>&, const int&)
  
  #define INSTANTIATE_INTTYPE_SHIFT_OPS(T) \
    INSTANTIATE_INTTYPE_SHIFT_OP (T, <<); \
--- 184,190 ----
  INSTANTIATE_INTTYPE_BIN_OPS (uint64_t, uint64_t);
  
  #define INSTANTIATE_INTTYPE_SHIFT_OP(T, OP) \
!   template OCTAVE_API octave_int<T> operator OP (const octave_int<T>&, const 
int&)
  
  #define INSTANTIATE_INTTYPE_SHIFT_OPS(T) \
    INSTANTIATE_INTTYPE_SHIFT_OP (T, <<); \
*************** INSTANTIATE_INTTYPE_SHIFT_OPS (uint32_t)
*** 200,206 ****
  INSTANTIATE_INTTYPE_SHIFT_OPS (uint64_t);
  
  #define INSTANTIATE_OCTAVE_INT_CMP_OP(OP, T1, T2) \
!   template bool operator OP (const octave_int<T1>&, const octave_int<T2>&)
  
  #define INSTANTIATE_OCTAVE_INT_CMP_OPS(T1, T2) \
    INSTANTIATE_OCTAVE_INT_CMP_OP (<, T1, T2); \
--- 200,206 ----
  INSTANTIATE_INTTYPE_SHIFT_OPS (uint64_t);
  
  #define INSTANTIATE_OCTAVE_INT_CMP_OP(OP, T1, T2) \
!   template OCTAVE_API bool operator OP (const octave_int<T1>&, const 
octave_int<T2>&)
  
  #define INSTANTIATE_OCTAVE_INT_CMP_OPS(T1, T2) \
    INSTANTIATE_OCTAVE_INT_CMP_OP (<, T1, T2); \
Index: liboctave/oct-inttypes.h
===================================================================
RCS file: /cvs/octave/liboctave/oct-inttypes.h,v
retrieving revision 1.26
diff -p -c -r1.26 oct-inttypes.h
*** liboctave/oct-inttypes.h    22 Jul 2006 08:31:16 -0000      1.26
--- liboctave/oct-inttypes.h    17 Oct 2006 11:07:42 -0000
*************** OCTAVE_INT_CMP_OP (!=)
*** 553,559 ****
  // type and compare).
  
  #define OCTAVE_US_TYPE1_CMP_OP_DECL(OP, LTZ_VAL, UT, ST) \
!   bool operator OP (const octave_int<UT>& lhs, const octave_int<ST>& rhs);
  
  #define OCTAVE_US_TYPE1_CMP_OP_DECLS(UT, ST) \
    OCTAVE_US_TYPE1_CMP_OP_DECL (<, false, UT, ST) \
--- 553,559 ----
  // type and compare).
  
  #define OCTAVE_US_TYPE1_CMP_OP_DECL(OP, LTZ_VAL, UT, ST) \
!   bool OCTAVE_API operator OP (const octave_int<UT>& lhs, const 
octave_int<ST>& rhs);
  
  #define OCTAVE_US_TYPE1_CMP_OP_DECLS(UT, ST) \
    OCTAVE_US_TYPE1_CMP_OP_DECL (<, false, UT, ST) \
*************** OCTAVE_INT_CMP_OP (!=)
*** 564,570 ****
    OCTAVE_US_TYPE1_CMP_OP_DECL (!=, true, UT, ST)
  
  #define OCTAVE_SU_TYPE1_CMP_OP_DECL(OP, LTZ_VAL, ST, UT) \
!   bool operator OP (const octave_int<ST>& lhs, const octave_int<UT>& rhs);
  
  #define OCTAVE_SU_TYPE1_CMP_OP_DECLS(ST, UT) \
    OCTAVE_SU_TYPE1_CMP_OP_DECL (<, true, ST, UT) \
--- 564,570 ----
    OCTAVE_US_TYPE1_CMP_OP_DECL (!=, true, UT, ST)
  
  #define OCTAVE_SU_TYPE1_CMP_OP_DECL(OP, LTZ_VAL, ST, UT) \
!   bool OCTAVE_API operator OP (const octave_int<ST>& lhs, const 
octave_int<UT>& rhs);
  
  #define OCTAVE_SU_TYPE1_CMP_OP_DECLS(ST, UT) \
    OCTAVE_SU_TYPE1_CMP_OP_DECL (<, true, ST, UT) \
*************** OCTAVE_TYPE1_CMP_OP_DECLS (uint64_t, int
*** 592,598 ****
  // compare if the signed value is positive).
  
  #define OCTAVE_US_TYPE2_CMP_OP_DECL(OP, LTZ_VAL, UT, ST) \
!   bool operator OP (const octave_int<UT>& lhs, const octave_int<ST>& rhs);
  
  #define OCTAVE_US_TYPE2_CMP_OP_DECLS(ST, UT) \
    OCTAVE_US_TYPE2_CMP_OP_DECL (<, false, ST, UT) \
--- 592,598 ----
  // compare if the signed value is positive).
  
  #define OCTAVE_US_TYPE2_CMP_OP_DECL(OP, LTZ_VAL, UT, ST) \
!   bool OCTAVE_API operator OP (const octave_int<UT>& lhs, const 
octave_int<ST>& rhs);
  
  #define OCTAVE_US_TYPE2_CMP_OP_DECLS(ST, UT) \
    OCTAVE_US_TYPE2_CMP_OP_DECL (<, false, ST, UT) \
*************** OCTAVE_TYPE1_CMP_OP_DECLS (uint64_t, int
*** 603,609 ****
    OCTAVE_US_TYPE2_CMP_OP_DECL (!=, true, ST, UT)
  
  #define OCTAVE_SU_TYPE2_CMP_OP_DECL(OP, LTZ_VAL, ST, UT) \
!   bool operator OP (const octave_int<ST>& lhs, const octave_int<UT>& rhs);
  
  #define OCTAVE_SU_TYPE2_CMP_OP_DECLS(ST, UT) \
    OCTAVE_SU_TYPE2_CMP_OP_DECL (<, true, ST, UT) \
--- 603,609 ----
    OCTAVE_US_TYPE2_CMP_OP_DECL (!=, true, ST, UT)
  
  #define OCTAVE_SU_TYPE2_CMP_OP_DECL(OP, LTZ_VAL, ST, UT) \
!   bool OCTAVE_API operator OP (const octave_int<ST>& lhs, const 
octave_int<UT>& rhs);
  
  #define OCTAVE_SU_TYPE2_CMP_OP_DECLS(ST, UT) \
    OCTAVE_SU_TYPE2_CMP_OP_DECL (<, true, ST, UT) \
Index: liboctave/oct-passwd.h
===================================================================
RCS file: /cvs/octave/liboctave/oct-passwd.h,v
retrieving revision 1.5
diff -p -c -r1.5 oct-passwd.h
*** liboctave/oct-passwd.h      26 Apr 2005 19:24:29 -0000      1.5
--- liboctave/oct-passwd.h      17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 31,36 ****
--- 31,37 ----
  #endif
  
  class
+ OCTAVE_API
  octave_passwd
  {
  public:
Index: liboctave/oct-rand.h
===================================================================
RCS file: /cvs/octave/liboctave/oct-rand.h,v
retrieving revision 1.5
diff -p -c -r1.5 oct-rand.h
*** liboctave/oct-rand.h        3 Apr 2006 19:18:26 -0000       1.5
--- liboctave/oct-rand.h        17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 31,36 ****
--- 31,37 ----
  #include "dNDArray.h"
  
  struct
+ OCTAVE_API
  octave_rand
  {
    // Return the current seed.
Index: liboctave/oct-shlib.h
===================================================================
RCS file: /cvs/octave/liboctave/oct-shlib.h,v
retrieving revision 1.6
diff -p -c -r1.6 oct-shlib.h
*** liboctave/oct-shlib.h       2 May 2006 19:40:20 -0000       1.6
--- liboctave/oct-shlib.h       17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 32,37 ****
--- 32,38 ----
  // octave_shlib objects.
  
  class
+ OCTAVE_API
  octave_xshlib
  {
  public:
*************** public:
*** 40,45 ****
--- 41,47 ----
  };
  
  class
+ OCTAVE_API
  octave_shlib
  {
  public:
Index: liboctave/oct-spparms.h
===================================================================
RCS file: /cvs/octave/liboctave/oct-spparms.h,v
retrieving revision 1.4
diff -p -c -r1.4 oct-spparms.h
*** liboctave/oct-spparms.h     16 Jul 2006 07:48:20 -0000      1.4
--- liboctave/oct-spparms.h     17 Oct 2006 11:07:42 -0000
*************** Boston, MA 02110-1301, USA.
*** 35,40 ****
--- 35,41 ----
  #define OCTAVE_SPARSE_CONTROLS_SIZE 12
  
  class
+ OCTAVE_API
  octave_sparse_params
  {
  protected:
Index: liboctave/oct-syscalls.h
===================================================================
RCS file: /cvs/octave/liboctave/oct-syscalls.h,v
retrieving revision 1.6
diff -p -c -r1.6 oct-syscalls.h
*** liboctave/oct-syscalls.h    17 Sep 2005 00:50:58 -0000      1.6
--- liboctave/oct-syscalls.h    17 Oct 2006 11:07:42 -0000
*************** class string_vector;
*** 33,38 ****
--- 33,39 ----
  #endif
  
  struct
+ OCTAVE_API
  octave_syscalls
  {
    static int dup2 (int, int);
Index: liboctave/oct-time.h
===================================================================
RCS file: /cvs/octave/liboctave/oct-time.h,v
retrieving revision 1.5
diff -p -c -r1.5 oct-time.h
*** liboctave/oct-time.h        26 Apr 2005 19:24:29 -0000      1.5
--- liboctave/oct-time.h        17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,38 ****
--- 30,44 ----
  
  #include "systime.h"
  
+ #ifdef min
+ #undef min
+ #undef max
+ #endif
+ 
  class octave_base_tm;
  
  class
+ OCTAVE_API
  octave_time
  {
  public:
*************** operator >= (const octave_time& t1, cons
*** 140,145 ****
--- 146,152 ----
  }
  
  class
+ OCTAVE_API
  octave_base_tm
  {
  public:
*************** protected:
*** 247,252 ****
--- 254,260 ----
  };
  
  class
+ OCTAVE_API
  octave_localtime : public octave_base_tm
  {
  public:
*************** private:
*** 274,279 ****
--- 282,288 ----
  };
  
  class
+ OCTAVE_API
  octave_gmtime : public octave_base_tm
  {
  public:
*************** private:
*** 298,303 ****
--- 307,313 ----
  };
  
  class
+ OCTAVE_API
  octave_strptime : public octave_base_tm
  {
  public:
Index: liboctave/oct-uname.h
===================================================================
RCS file: /cvs/octave/liboctave/oct-uname.h,v
retrieving revision 1.1
diff -p -c -r1.1 oct-uname.h
*** liboctave/oct-uname.h       29 Nov 2005 17:41:33 -0000      1.1
--- liboctave/oct-uname.h       17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 27,32 ****
--- 27,33 ----
  #include <string>
  
  class
+ OCTAVE_API
  octave_uname
  {
  public:
Index: liboctave/pathsearch.h
===================================================================
RCS file: /cvs/octave/liboctave/pathsearch.h,v
retrieving revision 1.12
diff -p -c -r1.12 pathsearch.h
*** liboctave/pathsearch.h      26 Apr 2006 18:16:25 -0000      1.12
--- liboctave/pathsearch.h      17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 29,34 ****
--- 29,35 ----
  #include "str-vec.h"
  
  class
+ OCTAVE_API
  dir_path
  {
  public:
Index: liboctave/prog-args.h
===================================================================
RCS file: /cvs/octave/liboctave/prog-args.h,v
retrieving revision 1.5
diff -p -c -r1.5 prog-args.h
*** liboctave/prog-args.h       26 Apr 2005 19:24:29 -0000      1.5
--- liboctave/prog-args.h       17 Oct 2006 11:07:42 -0000
*************** long_options
*** 34,39 ****
--- 34,40 ----
  };
  
  class
+ OCTAVE_API
  prog_args
  {
  public:
Index: liboctave/so-array.h
===================================================================
RCS file: /cvs/octave/liboctave/so-array.h,v
retrieving revision 1.6
diff -p -c -r1.6 so-array.h
*** liboctave/so-array.h        31 Jan 2006 03:43:40 -0000      1.6
--- liboctave/so-array.h        17 Oct 2006 11:07:42 -0000
*************** class boolNDArray;
*** 33,39 ****
  
  // Stream offsets.
  
! class streamoff_array : public ArrayN<std::streamoff>
  {
  public:
  
--- 33,39 ----
  
  // Stream offsets.
  
! class OCTAVE_API streamoff_array : public ArrayN<std::streamoff>
  {
  public:
  
*************** public:
*** 88,98 ****
    static std::streamoff resize_fill_value (void) { return 0; }
  };
  
! streamoff_array& operator += (streamoff_array& l, const std::streamoff& r);
! streamoff_array& operator -= (streamoff_array& l, const std::streamoff& r);
  
! streamoff_array& operator += (streamoff_array& l, const streamoff_array& r);
! streamoff_array& operator -= (streamoff_array& l, const streamoff_array& r);
  
  NDCMP_OP_DECL (mx_el_eq, std::streamoff, streamoff_array);
  NDCMP_OP_DECL (mx_el_ne, std::streamoff, streamoff_array);
--- 88,98 ----
    static std::streamoff resize_fill_value (void) { return 0; }
  };
  
! OCTAVE_API streamoff_array& operator += (streamoff_array& l, const 
std::streamoff& r);
! OCTAVE_API streamoff_array& operator -= (streamoff_array& l, const 
std::streamoff& r);
  
! OCTAVE_API streamoff_array& operator += (streamoff_array& l, const 
streamoff_array& r);
! OCTAVE_API streamoff_array& operator -= (streamoff_array& l, const 
streamoff_array& r);
  
  NDCMP_OP_DECL (mx_el_eq, std::streamoff, streamoff_array);
  NDCMP_OP_DECL (mx_el_ne, std::streamoff, streamoff_array);
Index: liboctave/str-vec.h
===================================================================
RCS file: /cvs/octave/liboctave/str-vec.h,v
retrieving revision 1.21
diff -p -c -r1.21 str-vec.h
*** liboctave/str-vec.h 6 Jul 2006 22:34:48 -0000       1.21
--- liboctave/str-vec.h 17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 31,36 ****
--- 31,37 ----
  #include "Array.h"
  
  class
+ OCTAVE_API
  string_vector : public Array<std::string>
  {
  public:
Index: liboctave/uint16NDArray.cc
===================================================================
RCS file: /cvs/octave/liboctave/uint16NDArray.cc,v
retrieving revision 1.7
diff -p -c -r1.7 uint16NDArray.cc
*** liboctave/uint16NDArray.cc  26 Apr 2005 19:24:29 -0000      1.7
--- liboctave/uint16NDArray.cc  17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,42 ****
  
  #include "intNDArray.cc"
  
! template class intNDArray<octave_uint16>;
  
! template
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_uint16>& a);
  
! template
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_uint16>& a);
  
--- 30,42 ----
  
  #include "intNDArray.cc"
  
! template class OCTAVE_API intNDArray<octave_uint16>;
  
! template OCTAVE_API
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_uint16>& a);
  
! template OCTAVE_API
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_uint16>& a);
  
Index: liboctave/uint32NDArray.cc
===================================================================
RCS file: /cvs/octave/liboctave/uint32NDArray.cc,v
retrieving revision 1.7
diff -p -c -r1.7 uint32NDArray.cc
*** liboctave/uint32NDArray.cc  26 Apr 2005 19:24:29 -0000      1.7
--- liboctave/uint32NDArray.cc  17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,42 ****
  
  #include "intNDArray.cc"
  
! template class intNDArray<octave_uint32>;
  
! template
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_uint32>& a);
  
! template
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_uint32>& a);
  
--- 30,42 ----
  
  #include "intNDArray.cc"
  
! template class OCTAVE_API intNDArray<octave_uint32>;
  
! template OCTAVE_API
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_uint32>& a);
  
! template OCTAVE_API
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_uint32>& a);
  
Index: liboctave/uint64NDArray.cc
===================================================================
RCS file: /cvs/octave/liboctave/uint64NDArray.cc,v
retrieving revision 1.5
diff -p -c -r1.5 uint64NDArray.cc
*** liboctave/uint64NDArray.cc  26 Apr 2005 19:24:29 -0000      1.5
--- liboctave/uint64NDArray.cc  17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,42 ****
  
  #include "intNDArray.cc"
  
! template class intNDArray<octave_uint64>;
  
! template
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_uint64>& a);
  
! template
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_uint64>& a);
  
--- 30,42 ----
  
  #include "intNDArray.cc"
  
! template class OCTAVE_API intNDArray<octave_uint64>;
  
! template OCTAVE_API
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_uint64>& a);
  
! template OCTAVE_API
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_uint64>& a);
  
Index: liboctave/uint8NDArray.cc
===================================================================
RCS file: /cvs/octave/liboctave/uint8NDArray.cc,v
retrieving revision 1.7
diff -p -c -r1.7 uint8NDArray.cc
*** liboctave/uint8NDArray.cc   26 Apr 2005 19:24:29 -0000      1.7
--- liboctave/uint8NDArray.cc   17 Oct 2006 11:07:42 -0000
*************** Software Foundation, Inc., 51 Franklin S
*** 30,42 ****
  
  #include "intNDArray.cc"
  
! template class intNDArray<octave_uint8>;
  
! template
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_uint8>& a);
  
! template
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_uint8>& a);
  
--- 30,42 ----
  
  #include "intNDArray.cc"
  
! template class OCTAVE_API intNDArray<octave_uint8>;
  
! template OCTAVE_API
  std::ostream&
  operator << (std::ostream& os, const intNDArray<octave_uint8>& a);
  
! template OCTAVE_API
  std::istream&
  operator >> (std::istream& is, intNDArray<octave_uint8>& a);
  

reply via email to

[Prev in Thread] Current Thread [Next in Thread]