summaryrefslogtreecommitdiff
path: root/factors/type.go
AgeCommit message (Collapse)Author
2023-11-12Add per-file copyright notices & contact infoAdrien Hopkins
This is the safest thing to do to ensure my software is free while avoiding legal trouble ... hopefully, I'm not a lawyer!
2023-11-09Reduce golang requirement to go1.18Adrien Hopkins
go1.21, the previous requirement, was released a few months ago, so not all systems have adopted it. go1.18 is old enough that most systems should support it, but it introduces generics, which my testing code is highly dependent on, so I can't easily go any earlier.
2023-10-09factors: Give Type proper name & zero valueAdrien Hopkins
2023-10-09factors: Give all exported members proper godocAdrien Hopkins
2023-09-23Add license (GPL v3-only) & copyright noticesAdrien Hopkins
2023-09-19factors: refactor code to improve readabilityAdrien Hopkins
2023-09-07Calculate type of all radices without -lAdrien Hopkins
factors.Type now supports all numbers; I have used lookup arrays instead of determining whether a number is SAN or not. There are only 117 elements to store, and this makes the algorithm Θ(1), so it's an improvement. Also, I have changed the size of some integer values to correspond to this change - they now indicate the size of numbers they can accept. The only outputs that are hidden for large radices are: - The digit map, which goes up to 36 because I don't have any more digits beyond that point - The multiplication table complexity, which is estimated above 2^16 (for performance), and can optionally be extended to 2^32 (above this, the output could overflow a uint64).
2023-09-05Alter backing values of enum typesAdrien Hopkins
The backing constants of NumberType and TotativeType have been changed so that they can be compared (based on how desirable they are, more desirable categories are given higher values), and so that I can add new values in between without changing the constants.
2023-08-30Add digit map calculationAdrien Hopkins
This is not in the output yet, but it will be soon - printing it is another task since I want colours in my output.
2023-08-23Add radix type to outputAdrien Hopkins
This type measures which kind of classes each radix is a part of: - Colossally Abundant (OEIS: A004490; factor score better than every other number if you account for size be dividing by a certain power of the number) - Superabundant (OEIS: A004394; factor score better than every smaller number) - Ordered-Exponent (OEIS: A025487; exponents in prime factorization go down as you get to bigger primes, and no prime is skipped) - Practical (OEIS: A005153; factors can sum to any number below the original number without duplication) Each of these groups is a subset of the next, so only the most specific label is reported. The purpose of this program is to give you useful info to help you determine which radices are the best, and these categories give a rough, quantitative measure of how useful a radix's factors are: - Practical is approximately the minimum requirement for a worthwhile radix. Non-practical radices above ~16 are probably terrible to use. - Ordered-Exponent radices act like local maxima - you can't get any better (smaller) without changing the "shape" (exponents) of your prime factorization. - Superabundant radices are the best radices below the next superabundant number (e.g. 12 is the best radix below 24). - Colossally abundant radices are, in some sense, the best radices out of all numbers.