# File lib/facet/lisp-format.rb, line 809
        def cardinal(n)
          return 'zero' if n.zero?
          out = []
          negative = n < 0
          n = n.abs
          power = 0
          while n > 0
            before, after = n.divmod(1000)
            if after > 0
              block = cardinal_100s(after) + (power.zero? ? '' : ' ')
              if power < @@illions.size
                block << @@illions[power]
              else
                block << 'times ten to the ' + (power * 3).to_s + ' power'
              end
              out << block
            end
            n = before
            power += 1
          end
          negative and out << 'minus'
          out.reverse.join(', ')
        end