Project

General

Profile

Support #1161

Split NumTheory.C into several smaller files

Added by John Abbott about 6 years ago. Updated about 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Tidying
Target version:
Start date:
22 Feb 2018
Due date:
% Done:

100%

Estimated time:
21.70 h
Spent time:

Description

The file NumTheory.C has become rather large. Consider splitting it into several smaller files.


Related issues

Related to CoCoALib - Support #1160: Clean up revised RatReconstructByContFrac codeNew2018-02-22

Related to CoCoA-5 - Support #1240: John's visit Feb 2019Closed2019-02-08

History

#1 Updated by John Abbott about 6 years ago

Some suggestions for the subfiles:
primes, RatReconstruct, CRT

Note that there is no need to split the documentation correspondingly.

#2 Updated by John Abbott about 6 years ago

  • Related to Support #1160: Clean up revised RatReconstructByContFrac code added

#3 Updated by John Abbott about 6 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 20

I have split off the code to do with prime testing and generation. It is in NumTheory-prime
Note it is better not to use underscore in names because that causes trouble in the documentation (as LaTeX interprets underscores in a special way).

Made several changes too.

#4 Updated by John Abbott about 6 years ago

I get a strange infinite loop on a 32-bit machine. Seems to be related to FastMostlyPrimeSeq.

Must investigate... but how many people really use 32-bit machines? Frustrating.

#5 Updated by John Abbott almost 6 years ago

  • Target version changed from CoCoALib-0.99600 to CoCoALib-0.99650 November 2019

#6 Updated by John Abbott about 5 years ago

In terms of compilation speed, it is probably not necessary to split NumTheory.C; my computer compiled the current version (about 2130 lines long, incl. 300 lines of log comments) in about 2s.

It may be helpful from an organizational point of view to split it; I do feel uneasy with such large source files.

Obvious partitions include: CRT, factor/IsSqfree, continued fractions, ratreconstruct.

#7 Updated by John Abbott about 5 years ago

#8 Updated by John Abbott about 5 years ago

  • % Done changed from 20 to 60
Current state:
  • NumTheory.C
  • NumTheory-ContFrac.C
  • NumTheory-CoprimeFactorBasis.C
  • NumTheory-prime.C
  • NumTheory-factor.C
  • NumTheory-RatReconstruct.C

Possible further splits: gcd/lcm, InvMod, PrimtiveRoot/MultOrder/Kronecker, SimplestRat, CRT

#9 Updated by John Abbott over 4 years ago

  • Target version changed from CoCoALib-0.99650 November 2019 to CoCoALib-0.99700

#10 Updated by John Abbott over 4 years ago

  • Target version changed from CoCoALib-0.99700 to CoCoALib-0.99800

Postponing because not important for CoCoA School.

#11 Updated by John Abbott about 4 years ago

  • Status changed from In Progress to Feedback
  • Target version changed from CoCoALib-0.99800 to CoCoALib-0.99700
  • % Done changed from 60 to 90

Now I think this is done:

NumTheory-ContFrac.H
NumTheory-CoprimeFactorBasis.H
NumTheory-CRT.H
NumTheory-factor.H
NumTheory-gcd.H
NumTheory-misc.H
NumTheory-modular.H
NumTheory-prime.H
NumTheory-RatReconstruct.H
NumTheory-SimplestRat.H

Let's see how we feel with NumTheory split into so many parts; if it works OK, we can consider splitting some other big files.

#12 Updated by John Abbott about 4 years ago

  • Status changed from Feedback to Closed
  • % Done changed from 90 to 100
  • Estimated time set to 21.70 h

Also available in: Atom PDF