ChineseRemainder - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


LinearAlgebra[Modular]

  

ChineseRemainder

  

apply Garner's algorithm to reconstruct from mod m Matrix or Vector images

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

ChineseRemainder(A, m, img, prm, sto)

Parameters

A

-

current reconstruction

m

-

assigned name for prime product for reconstruction

img

-

new image, or list of new images, mod m Matrices or Vectors)

prm

-

new prime or list of primes

sto

-

(optional) temporary storage (efficiency)

Description

• 

The ChineseRemainder function applies an incremental version of Garner's algorithm, updating the current image A and modulus m with the image or images specified by img and prm.

  

Upon successful completion, the reconstructed image is returned, and m which must be a name, is updated.

• 

The A and m parameters represent the current reconstruction, and name corresponding to the current prime product.

  

If no reconstruction has been performed, that is, this is the first call to ChineseRemainder for this reconstruction, A and m have the values A=0 and m=n, where n is assigned the value 1.

  

If the current reconstruction is to be updated with new images, A should be the Matrix or Vector returned from the prior call to ChineseRemainder, and m should be the name used in the prior call.

  

In all cases the reconstruction is returned, even though for updates to the reconstruction ChineseRemainder works on A in-place.

• 

The img and prm parameters represent the new images to be used to update the reconstruction, and the corresponding primes. For updating with a single image, these can be specified as the image and prime. For updating with multiple images, these are specified as a list of the images, and a list of the corresponding primes.

• 

Regardless of the datatype of the image, the output is always datatype 'integer'.

  

Note: The reconstructed image is not a mod m Matrix or Vector, as it stores the entries in the symmetric range, while the input images from img are mod m Matrices or Vectors with entries in the positive range.

• 

The ChineseRemainder command requires additional storage when reconstructing a result with multiple images. The ability to pre-allocate this storage and utilize it in ChineseRemainder is made available by the optional fifth argument sto. If specified, sto must be a mod m Matrix or Vector with the same datatype and dimensions as the images from img.

• 

This command is part of the LinearAlgebra[Modular] package, so it can be used in the form ChineseRemainder(..) only after executing the command with(LinearAlgebra[Modular]).  However, it can always be used in the form LinearAlgebra[Modular][ChineseRemainder](..).

Examples

Apply Chinese remainder algorithm to a Matrix, one step at a time.

withLinearAlgebraModular:

AMatrix3,4,i,jrand

A39571886053419313981641522424170465800187484459427552056869842622684442412286285840996417214180386408307450694607189265773012980023730616292946

(1)

Now reconstruct A from images.

p1ithprime4600

p144201

(2)

I1Modp1,A,integer

I1374221083530743292802716515012439083831527179107263443818340

(3)

m1

m1

(4)

A2ChineseRemainder0,m,I1,p1

A2−677910835−13458−14921−1703615012−293−5886−1702210726−976318340

(5)

p2prevprimep1

p244189

(6)

I2Modp2,A,integer

I2231837641205253670417510971943555276372734533131438976791

(7)

ChineseRemainderA2,m,I2,p2

−780331233−226784496938992586−623691031−198302722794351183161510161286239790−324894372−731294819−453423621120245060

(8)

p3prevprimep2

p344179

(9)

I3Modp3,A,integer

I32925809114540299332081019225381572789141554343092839727923

(10)

ChineseRemainderA2,m,I3,p3

39571886053419313981641522424170465800187484459427552056869842622684442412286285840996417214180386408307450694607189265773012980023730616292946

(11)

A2A,m

000000000000,86290333956031

(12)

You can do the reconstruction all at once.

m1

m1

(13)

A2ChineseRemainder0,m,I1,I2,I3,p1,p2,p3

A239571886053419313981641522424170465800187484459427552056869842622684442412286285840996417214180386408307450694607189265773012980023730616292946

(14)

A2A,m

000000000000,86290333956031

(15)

Incremental reconstruction with storage (not required for first step).

m1

m1

(16)

p1prevprime2251

p133554393

(17)

I1Modp1,A,float8

I11.1903885×107730307.9.835941×1061.5874588×1071.981263×1064.767426×1063.459049×1061.9514045×1072.9472055×1073.1254165×1072.0428482×1072.939764×106

(18)

A2ChineseRemainder0,m,I1,p1

A211903885730307983594115874588198126347674263459049−14040348−4082338−2300228−131259112939764

(19)

Now use I1 as temp storage.

p2prevprimep1

p233554383

(20)

I2Modp2,A,float8

I21.2021815×107787867.9.842621×1061.6113058×1072.108683×1065.018546×1063.581919×1061.9810995×1072.9587205×1073.1461165×1072.0658852×1073.157504×106

(21)

ChineseRemainderA2,m,I2,p2,I1

39571886053419313981641522424170465800187484459427552056869842622684442412286285840996417214180386408307450694607189265773012980023730616292946

(22)

A2A,m

000000000000,1125896954054519

(23)

See Also

LinearAlgebra/Details

LinearAlgebra[Modular]

LinearAlgebra[Modular][Mod]