Package: autodia
Version: 2.00-1
Severity: normal

hello

I tried autodia with a part of my project.
The result is no output and an error:

[EMAIL PROTECTED]:~/tmp1/include$ autodia.pl -l c++ svecmat.h
getting pattern for c++


AutoDia - version 2.00(c) Copyright 2003 A Trevena

getting handlers..
using language : c++

...using Autodia::Handler::Cpp
opening svecmat.h
Diagram.pm : add_class : ignoring duplicate classsmatrix
waiting for start of method def:

waiting for start of method def:   /**

waiting for start of method def:    * \brief Transposition.

waiting for start of method def:    *

waiting for start of method def:    * Transpose the matrice \b this

waiting for start of method def:    */

waiting for start of method def:   void transpose();

waiting for start of method def:

waiting for start of method def:   /**

waiting for start of method def:    * \brief Multiplication by the
matrix \b M2 on its right.

waiting for start of method def:    * \b this = \b this * \b M2

waiting for start of method def:    * \param M2 a matrix

waiting for start of method def:    *

waiting for start of method def:    * Multiply the matrix \b this by \b
M2 and p ut the results into \b this

waiting for start of method def:    * \f[

waiting for start of method def:    *    \mathbf{this} = \mathbf{this}
\times \m athbf{M2}

output filename : autodia.out.xml
get_template called : outfile -- autodia.out.xml
getting default (dia) template
template : SCALAR(0x84465e4)
Diagram.pm : Inheritances : no Inheritances to be printed - ignoring..
Diagram.pm : Dependancies : no dependancies to be printed - ignoring..
Can't use an undefined value as an ARRAY reference at
/usr/share/perl5/Autodia/Diagram.pm line 1055.


-- System Information:
Debian Release: 3.1
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.6.8-2-686-smp
Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15)

Versions of packages autodia depends on:
ii  libtemplate-perl              2.14-1     template processing system written
ii  perl                          5.8.4-8    Larry Wall's Practical Extraction 

-- no debconf information
//+======================================================================

// $Source: /usr/local/CVS/HKL/include/Attic/svecmat.h,v $

//

// Project:      HKL Library

//

// Description:  Header file for the class svector, smatrix

// (Delos Vincent) - 26 janv. 2005

//

// $Author: picca $

//

// $Revision: 1.1.2.3 $

//

// $Log: svecmat.h,v $
// Revision 1.1.2.3  2005/03/10 16:18:55  picca
// -typo
// - remove the printOnScreen function of svector and smatrix
//
// Revision 1.1.2.2  2005/03/09 17:40:29  picca
// modification de == pour que l'erreur de précision soit prise en compte
//
// Revision 1.1.2.1  2005/03/01 08:52:01  picca
// automake et cppUnit
//
// Revision 1.10  2005/02/08 15:51:05  picca
// update the documenattion
//
// Revision 1.9  2005/01/27 09:23:53  delos
// Commentaires pour CVS en tete des fichiers
//

//

//

// copyleft :       Synchrotron SOLEIL

//                  L'Orme des Merisiers

//                  Saint-Aubin - BP 48

//                  91192 GIF-sur-YVETTE CEDEX

//

//-======================================================================
/// File svecmat.h

#ifndef VECMAT
#define VECMAT

#include <iostream>
#include "HKLException.h"
#include "constants.h"

class smatrix;

/// Define a vector in a three dimensionnal space.
class svector
{

private:
  double m_v1; /**< 1st vector coordinate*/
  double m_v2; /**< 2nd vector coordinate*/
  double m_v3; /**< 3rd vector coordinate*/

public:
  /**
   * \brief Default constructor
   * 
   * Create a new vector and set all its components to 0.0
   */
  svector();
  
  /**
   * \brief This constructor creates a 3D vector and populates it
   * \param[in] el1
   * \param[in] el2
   * \param[in] el3
   * 
   * Create a new vector with el1, el2 and el3 as coordinates
   */
  svector(const double el1, const double el2, const double el3);

  /**
   * \brief Copy constructor.
   * \param v #svector
   * 
   * Create a new vector by copying the v vector.
   */
  svector(const svector& v);

  /**
   * \brief Compare two svector
   * @param v 
   * @return 1 if this == Y, 0 otherwise
   */
  bool operator == (const svector& v) const;
  
 
  /**
   * \brief Get the 1st coordinate of the vector
   * \return The first element of the vector
   */
  double get_X() const;
 
  /**
   * \brief Get the 2nd coordinate of the vector.
   * \return the second element of the vector.
   */
  double get_Y() const; 
 
  /**
   * \brief Get the 3rd coordinate of the vector.
   * \return The third element of the vector.
   */
  double get_Z() const;
  
  /**
   * \brief Set the elements of the svector with the a,b and c parameters
   * @param a 
   * @param b 
   * @param c 
   */
  void set(double a, double b, double c);

  /**
   * \brief Scalar product.
   * \param[in] u #svector
   * \return The scalar product of \f$\vec{this}\f$ by \f$\vec{u}\f$
   */
  double scalar(const svector& u) const;

  /**
   * \brief Vectorial product : \f$ \vec{Z} = \vec{this} \times \vec{Y}\f$.
   * \param[in] Y #svector
   * \param[out] Z #svector
   * 
   * This method computes the vectorial product with Y and 
   * it puts the result into Z.
   */
  void vectorialProduct(const svector& Y, svector& Z) const;

  /**
   * \brief Creation of an axis system with unit vectors.
   * \param[in] Y #svector
   * \param[out] M #smatrix
   * 
   * This method creates a direct axis system M with the Y vector.
   * All the M vectors are units vectors.
   * \f[ M = ( \vec{v1}, \vec{v2}, \vec{v3}) \f]
   * where
   * \f[
   *  \begin{aligned}
   *    \vec{v1} & = \frac{\vec{this}}{||\vec{this}||_2} \\
   *    \vec{v2} & = \frac{\vec{Y}}{||\vec{Y}||_2} \\
   *    \vec{v3} & = \vec{v1} \times \vec{v2} \\
   *  \end{aligned}
   * \f]
   */
  void axisSystem(const svector Y, smatrix& M) const;

  /**
   * \brief Return the Euclidean norm of the vector.
   * \return The euclidean norm of the vector
   * 
   * This method computes the Euclidean norm of the vector \f$ \vec{this}=(m\_v1, m\_v2, m\_v3) \f$.
   * \f[
   * ||\vec{this}||_2 = \sqrt{m\_v1^2+m\_v2^2+m\_v3^2}
   * \f]
   */
  double norm2() const;

  /**
   * \brief Return the infinit norm of the vector.
   * \return The infinit norm of the vector
   * 
   * This method computes the infinit norm of the vector \f$ \vec{this}=(m\_v1, m\_v2, m\_v3) \f$.
   * \f[
   *   ||\vec{this}||_\infty = \max(|m\_v1|,|m\_v2|,|m\_v3|)
   * \f]
   */
  double norminf() const;

  /**
   * \brief Compute a colinear unit vector and store its length.
   * \param[in,out] _unitVector #svector
   * \param[out] length  The length of the vector \f$\vec{this}\f$
   * 
   * This method computes the colinear unit vector of \f$\vec{this}\f$
   * \f[
   *   \vec{unitvector} = \frac{\vec{this}}{||\vec{this}||_2}
   * \f]
   * and it computes the length of the vector \f$\vec{this}\f$
   * \f[
   *   length = ||\vec{this}||_2
   * \f]
   */
  void unitVector(svector &_unitVector, double &length) const;

  /**
   * \brief Multiplication by a matrix on its right and left.
   * this = this.M
   * \param[in] M #smatrix
   * 
   * This method computes the product of \f$\vec{this}\f$ by \f$M\f$
   * on its right
   * \f[\vec{this}=\vec{this}.M\f]
   */
  void multiplyOnTheRight(const smatrix &M);
 
  /**
   * \brief Multiplication by a matrix on its right and left.
   * this = M.this
   * \param[in] M #smatrix
   * 
   * This method computes the product of \f$\vec{this}\f$ by \f$M\f$
   * on its left 
   * \f[\vec{this} = M.\vec{this}\f]
   */
  void multiplyOnTheLeft(const smatrix &M);
};
 
 /**
   * \brief Surcharge de l'operateur << pour la class svector
   * @param flux 
   * @param v 
   * @return 
   */
std::ostream& operator << (std::ostream& flux, const svector& v);
  
/// Define a matrix in a three dimensionnal space.
class smatrix
{
  friend class svector;

private:
  double m_mat11; /**< element 11 of the matrix*/
  double m_mat12; /**< element 12 of the matrix*/
  double m_mat13; /**< element 13 of the matrix*/
  double m_mat21; /**< element 21 of the matrix*/
  double m_mat22; /**< element 22 of the matrix*/
  double m_mat23; /**< element 23 of the matrix*/
  double m_mat31; /**< element 31 of the matrix*/
  double m_mat32; /**< element 32 of the matrix*/
  double m_mat33; /**< element 33 of the matrix*/

public:
  /**
   * \brief Default constructor
   * 
   * Create a new identity matrix.
   */
  smatrix();

  /**
   * \brief This constructor creates a 3*3 matrix and populates it.
   * \param el11
   * \param el12
   * \param el13
   * \param el21
   * \param el22
   * \param el23
   * \param el31
   * \param el32
   * \param el33
   *
   *
   * Create a new matrix from the elij values.
   */
  smatrix( double el11, double el12, double el13,
           double el21, double el22, double el23,
           double el31, double el32, double el33);

  /**
   * \brief Copy constructor.
   * \param M The original matrix
   *
   * Create a new matrix by copying the elements of the matrix \b M
   */
  smatrix(const smatrix& M);

  /**
   * \brief Test if this is equal to the smatrix M 
   * @param M the smatrix to compare with
   * @return 1 if the two smatrix are equal, 0 otherwise
   */
  bool operator == (const smatrix& M) const;
  
  /**
   * \brief Copy a matrix.
   * \param M the original matrix
   *
   * Set the elements of the matrix \b this using the elements of the matrix \b M
   */
  void set(const smatrix& M);

  /**
   * \brief Give the fields a new value.
   * \param  el11
   * \param  el12
   * \param  el13
   * \param  el21
   * \param  el22
   * \param  el23
   * \param  el31
   * \param  el32
   * \param  el33
   *
   * set the fields of the matrix \b this with the elements elij
   */
  void set( double el11, double el12, double el13,
            double el21, double el22, double el23,
            double el31, double el32, double el33);

  /**
   * \brief Get a matrix element.
   * \return The value of the i,j element of the matrix \b this
   */
  double get(int i,int j) const throw (HKLException);

  /**
   * \brief Transposition.
   *
   * Transpose the matrice \b this
   */
  void transpose();

  /**
   * \brief Multiplication by the matrix \b M2 on its right.
   * \b this = \b this * \b M2
   * \param M2 a matrix
   *
   * Multiply the matrix \b this by \b M2 and put the results into \b this
   * \f[
   *    \mathbf{this} = \mathbf{this} \times \mathbf{M2}
   * \f]
   */
  void multiplyOnTheRight(const smatrix& M2);
  
  /**
   * \brief Multiplication by the matrix \b M2 on its left.
   * \b this = \b M2 * \b this
   * \param M2 a matrix
   *
   * Multiply the matrix \b M2 by \b this and put the results into \b this
   * \f[
   *    \mathbf{this} = \mathbf{M2} \times \mathbf{this}
   * \f]
   */
  void multiplyOnTheLeft(const smatrix& M2);

  void testMultiplication(smatrix& M2);
};

/**
   * \brief Surcharge de l'operateur << pour la class smatrix
   * @param flux 
   * @param m 
   * @return 
   */
std::ostream& operator << (std::ostream& flux, const smatrix& m);

#endif

Reply via email to