/*
 * $Id: df1b2f16.cpp 1919 2014-04-22 22:02:01Z johnoel $
 *
 * Author: David Fournier
 * Copyright (c) 2008-2012 Regents of the University of California
 */
/**
 * \file
 * Description not yet available.
 */
#include <df1b2fun.h>

/**
 * Description not yet available.
 * \param
 */
  ostream& operator << (const ostream& _os, const df1b2variable& _x)
  {
    ADUNCONST(df1b2variable,x)
    ADUNCONST(ostream,os)
    os << *x.u;
   /*
    os << dvector(df1b2variable::nvar,x.u_dot+1) << endl;
    os << dvector(df1b2variable::nvar,x.u_bar+1) << endl;
    os << dvector(df1b2variable::nvar,x.u_dot_bar+1) << endl;
   */
    return os;
  }

/**
 * Description not yet available.
 * \param
 */
  ostream& operator << (const ostream& _os, const df1b2vector& _x)
  {
    ADUNCONST(ostream,os)
    ADUNCONST(df1b2vector,x)
    int mmin=x.indexmin();
    int mmax=x.indexmax();
    for (int i=mmin;i<=mmax;i++)
    {
      os << x(i) << " ";
    }
    return os;
  }

/**
 * Description not yet available.
 * \param
 */
  ostream& operator << (const ostream& _os, const df1b2matrix& _x)
  {
    ADUNCONST(ostream,os)
    ADUNCONST(df1b2matrix,x)
    int mmin=x.indexmin();
    int mmax=x.indexmax();
    for (int i=mmin;i<=mmax;i++)
    {
      os << x(i) << " ";
      if (i<mmax) os << endl;
    }
    return os;
  }

/**
 * Description not yet available.
 * \param
 */
  ostream& operator << (const ostream& _os, const df1b2_init_number_vector& _x)
  {
    ADUNCONST(ostream,os)
    ADUNCONST(df1b2_init_number_vector,x)
    int mmin=x.indexmin();
    int mmax=x.indexmax();
    for (int i=mmin;i<=mmax;i++)
    {
      os << x(i) << " ";
    }
    return os;
  }

/**
 * Description not yet available.
 * \param
 */
  ostream& operator << (const ostream& _os,
    const df1b2_init_bounded_number_vector& _x)
  {
    ADUNCONST(ostream,os)
    ADUNCONST(df1b2_init_number_vector,x)
    int mmin=x.indexmin();
    int mmax=x.indexmax();
    for (int i=mmin;i<=mmax;i++)
    {
      os << x(i) << " ";
    }
    return os;
  }

/**
 * Description not yet available.
 * \param
 */
  ostream& operator << (const ostream& _os,
    const init_df1b2vector& _x)
  {
    ADUNCONST(ostream,os)
    ADUNCONST(init_df1b2vector,x)
    int mmin=x.indexmin();
    int mmax=x.indexmax();
    for (int i=mmin;i<=mmax;i++)
    {
      os << x(i) << " ";
    }
    return os;
  }
