Print information about the model solution.

def print_soln(self):
        """Print information about the model solution."""
        lmax = reduce(max,(len(x) for x in self.pnames), len('r chi sq'))

        if self.puncerts is None:
            for pn, val in zip(self.pnames, self.params):
                print('%s: %14g' % (pn.rjust(lmax), val))
        else:
            for pn, val, err in zip(self.pnames, self.params, self.puncerts):
                frac = abs(100. * err / val)
                print('%s: %14g +/- %14g (%.2f%%)' % (pn.rjust(lmax), val, err, frac))

        if self.rchisq is not None:
            print('%s: %14g' % ('r chi sq'.rjust(lmax), self.rchisq))
        elif self.chisq is not None:
            print('%s: %14g' % ('chi sq'.rjust(lmax), self.chisq))
        else:
            print('%s: unknown/undefined' % ('r chi sq'.rjust(lmax)))
        return self