12 #ifndef ECL_GEOMETRY_PASCALS_HPP_ 
   13 #define ECL_GEOMETRY_PASCALS_HPP_ 
   68         typedef typename Array<int,(N+2)*(N+1)/2>::const_iterator const_iterator;  
 
   69         const_iterator begin(
unsigned int index = 0) 
const;
 
   70         const_iterator end(
unsigned int index = 0) 
const;
 
   75         template <
typename OutputStream, 
int PowerN>
 
   79         Array<int,(N+2)*(N+1)/2> coefficients;
 
  120         const_iterator begin(
unsigned int index = 0) 
const;
 
  128         const_iterator end(
unsigned int index = 0) 
const;
 
  133         template <
typename OutputStream>
 
  134         friend OutputStream& 
operator<<(OutputStream &ostream, 
const PascalsTriangle<3> &triangle);
 
  137         Array<int,10> coefficients;
 
  166         virtual ~PascalsTriangle() {};
 
  179         const_iterator begin(
unsigned int index = 0) 
const;
 
  187         const_iterator end(
unsigned int index = 0) 
const;
 
  192         template <
typename OutputStream>
 
  193         friend OutputStream& 
operator<<(OutputStream &ostream, 
const PascalsTriangle<5> &triangle);
 
  196         Array<int,21> coefficients;
 
  210     for (
int i = N+1; i > 0; --i ) {
 
  211         for (
int j = 0; j < i; ++j ) {
 
  212             if ( ( i == N+1 ) || ( j == 0 ) ) {
 
  213                 coefficients[counter] = 1;
 
  215                 coefficients[counter] =  coefficients[counter-1] + coefficients[counter-(i+1)];
 
  232     for (
unsigned int i = 0; i < index; ++i ) {
 
  233         coeff_index += N+1-i;
 
  235     return const_iterator( &coefficients[coeff_index] );
 
  247     for (
unsigned int i = 0; i <= index; ++i ) {
 
  248         coeff_index += N+1-i;
 
  270 template <
typename OutputStream, 
int PowerN>
 
  275     for (
int i = PowerN+1; i > 0; --i ) {
 
  276         for (
int j = 0; j < i; ++j ) {
 
  296 template <
typename OutputStream>
 
  297 OutputStream& 
operator << ( OutputStream &ostream, 
const PascalsTriangle<3> &triangle)
 
  301     for (
int i = 4; i > 0; --i ) {
 
  302         for (
int j = 0; j < i; ++j ) {
 
  303             ostream << format(triangle.coefficients[counter]) << 
" ";
 
  322 template <
typename OutputStream>
 
  323 OutputStream& 
operator << ( OutputStream &ostream, 
const PascalsTriangle<5> &triangle)
 
  327     for (
int i = 6; i > 0; --i ) {
 
  328         for (
int j = 0; j < i; ++j ) {
 
  329             ostream << format(triangle.coefficients[counter]) << 
" ";