// Class for creating and outputting palindrome constants #include "palindromic.h" #include void Palindromic::setData() { int counter; cl_I cbase = base; cl_I upper, lower, current_constant; lower = 1; for (counter = 0; counter < variables; counter++) { if (digits-1-counter == 0) upper = 1; else upper = expt_pos(base, digits-1-counter); if (upper != lower) current_constant = upper+lower; else current_constant = upper; lower = lower * cbase; constants[counter] = current_constant; } } Palindromic::Palindromic(int i_base, int i_digits) { variables = (int) ceil(i_digits * 0.5); // since it is symmetric constants = new cl_I[variables]; digits = i_digits; base = i_base; setData(); } int Palindromic::getBase() { return(base); } int Palindromic::getDigits() { return(digits); } int Palindromic::getNumVars() { return(variables); } cl_I * Palindromic::getConstant(int number) { if (number < 0 || number >= variables) return(NULL); return(&constants[number]); }