Public Types | Public Member Functions | Private Attributes | Friends | List of all members
ecl::PascalsTriangle< N > Class Template Reference

Holds the coefficients for pascal's triangle up to row N. More...

#include <pascals_triangle.hpp>

Public Types

typedef Array< int,(N+2) *(N+1)/2 >::const_iterator const_iterator
 Utilise the array's iterator for parsing the triangle. More...
 

Public Member Functions

const_iterator begin (unsigned int index=0) const
 Iterator generator for diagonals of pascals triangle [begin]. More...
 
const_iterator end (unsigned int index=0) const
 Iterator generator for diagonals of pascals triangle [end]. More...
 
 PascalsTriangle ()
 Default constructor. More...
 
virtual ~PascalsTriangle ()
 

Private Attributes

Array< int,(N+2) *(N+1)/2 > coefficients
 

Friends

template<typename OutputStream , int PowerN>
OutputStream & operator<< (OutputStream &ostream, const PascalsTriangle< PowerN > &triangle)
 Streaming output insertion operator for for pascal triangles. More...
 

Detailed Description

template<int N>
class ecl::PascalsTriangle< N >

Holds the coefficients for pascal's triangle up to row N.

Stores the coefficients of all rows (determined in diagonal order) up until row N - i.e. all coefficients up to and including those for (x+y)^0 to (x+y)^N. Coefficients are stored as a sequence of rows going from top to bottom right (of the triangle) and moving left. For example, for N = 5, the representation in the array is as shown below:

(*this) = 1,1,1,1,1,1,
1,2,3,4,5,
1,3,6,10,
1,4,10,
1,5,
1;
Template Parameters
N: calculate the triangle to the N-th power.
See also
Math::Polynomials.

Definition at line 63 of file pascals_triangle.hpp.

Member Typedef Documentation

◆ const_iterator

template<int N>
typedef Array<int,(N+2)*(N+1)/2>::const_iterator ecl::PascalsTriangle< N >::const_iterator

Utilise the array's iterator for parsing the triangle.

Definition at line 77 of file pascals_triangle.hpp.

Constructor & Destructor Documentation

◆ PascalsTriangle()

template<int N>
ecl::PascalsTriangle< N >::PascalsTriangle

Default constructor.

This computes all coefficients of the triangle up to row N.

Definition at line 214 of file pascals_triangle.hpp.

◆ ~PascalsTriangle()

template<int N>
virtual ecl::PascalsTriangle< N >::~PascalsTriangle ( )
inlinevirtual

Definition at line 77 of file pascals_triangle.hpp.

Member Function Documentation

◆ begin()

template<int N>
PascalsTriangle< N >::const_iterator ecl::PascalsTriangle< N >::begin ( unsigned int  index = 0) const

Iterator generator for diagonals of pascals triangle [begin].

Return a const iterator pointing to the first element of the specified diagonal.

Parameters
index: the diagonal to be iterated.
Returns
const_iterator : constant iterator pointing pointing to the first element of the specified diagonal.

Definition at line 236 of file pascals_triangle.hpp.

◆ end()

template<int N>
PascalsTriangle< N >::const_iterator ecl::PascalsTriangle< N >::end ( unsigned int  index = 0) const

Iterator generator for diagonals of pascals triangle [end].

Return a const iterator just past the last element of the specified diagonal.

Parameters
index: the diagonal to be iterated.
Returns
const_iterator : constant iterator pointing just beyond the last of the specified diagonal.

Definition at line 251 of file pascals_triangle.hpp.

Friends And Related Function Documentation

◆ operator<<

template<int N>
template<typename OutputStream , int PowerN>
OutputStream& operator<< ( OutputStream &  ostream,
const PascalsTriangle< PowerN > &  triangle 
)
friend

Streaming output insertion operator for for pascal triangles.

Streaming output insertion operator for for pascal triangles.

Template Parameters
OutputStream: the type of stream being used.
PowerN: the order of the pascal's triangle being inserted.
Parameters
ostream: the stream to send the output to.
triangle: the pascal triangle object.
Returns
OutputStream : the output stream.

Definition at line 277 of file pascals_triangle.hpp.

Member Data Documentation

◆ coefficients

template<int N>
Array<int,(N+2)*(N+1)/2> ecl::PascalsTriangle< N >::coefficients
private

Definition at line 93 of file pascals_triangle.hpp.


The documentation for this class was generated from the following file:


ecl_geometry
Author(s): Daniel Stonier
autogenerated on Wed Mar 2 2022 00:16:40