c# parse pdf to xml : Remove metadata from pdf software control cloud windows azure .net class xnumbers-tutorial111-part864

Xnumbers Tutorial 
110 
Number Theory 
Maximum Common Divisor 
xMCD(a1, [a2]) 
MCD(a1, [a2], [a3]...) 
Returns the Maximum Common Divisor (also called Greatest Common Divisor, GCD)  of two or 
more extended numbers 
The arguments "a1" and "a2" may be single numbers or arrays (range). At least, two values 
must be input. If "a1" is a range, "a2" may be omitted 
Minimum Common Multiple 
xMCM(a1, [a2])   
MCM(a1, [a2], [a3]...) 
Returns the Minimum Common Multiple (also Least Common Multiple, LCM)  of two or more 
extended numbers 
The arguments "a1" and "a2" may be single numbers or arrays (range). At least, two values 
must be input. If "a1" is a range, "a2" may be omitted 
Example 
Note that LCM may easily overcome the standard precision limit even if its arguments are all in 
standard precision.  
Remove metadata from pdf - add, remove, update PDF metadata in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# Developers to Read, Add, Edit, Update and Delete PDF Metadata
remove metadata from pdf; metadata in pdf documents
Remove metadata from pdf - VB.NET PDF metadata library: add, remove, update PDF metadata in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Enable VB.NET Users to Read, Write, Edit, Delete and Update PDF Document Metadata
pdf xmp metadata editor; pdf keywords metadata
Xnumbers Tutorial 
111 
Rational Fraction approximation 
xFract(x, [Digit_Max])   
Fract(x, [ErrMax])   
Returns the fractional approximation of a non-integer number x, the functions returns a vector 
of two integer numbers, numerator N and denominator D : 
x ≈ N / D 
The optional parameter ErrMax sets the accuracy of the fraction conversion (default=1E-14). 
The function tries to calculate the fraction with the maximum accuracy possible. 
The algorithm uses the continued fraction expansion
1
0
1   ,
1
  ,
1
0
1
0
=
=
=
=
D
D
N
N
1
1
1
1
+
+
= ⋅ ⋅ +
⋅ +
=
i
i
i
i
i
i
i
i
D
a D
D
N
a N
N
Where a
i
are found by the following algorithm: 
(
)
1
1
1
1
/
int
+
+
+
+
= − ⋅
=
=
i
i
i
i
i
i
i
i
i
y a
x
y
y
x
x y
a
In the example below  we want to find 
the fraction form of  the number  0.126.  
The function returns the solution: 
N = 63 , D = 500 
0.126 ≅ 63 / 500 
Often the rational form is not so easy to find, and depends strongly on the precision we want to 
reach.  
See, for example, the fractions that approximate 
2
with increasing precision 
Digit 
N/D 
Error 
1.500000000000000 
0.08579 
1.400000000000000 
0.01421 
41 
29 
1.413793103448280 
0.00042 
99 
70 
1.414285714285710 
7.2E-05 
239 
169 
1.414201183431950 
1.2E-05 
1393 
985 
1.414213197969540 
3.6E-07 
3363 
2378 
1.414213624894870 
6.3E-08 
8119 
5741 
1.414213551646050 
1.1E-08 
10 
47321 
33461 
1.414213562057320 
3.2E-10 
11 
114243 
80782 
1.414213562427270 
5.4E-11 
12 
275807 
195025 
1.414213562363800 
9.3E-12 
13 
1607521 
1136689 
1.414213562372820 
2.8E-13 
14 
3880899 
2744210 
1.414213562373140 
4.2E-14 
15 
9369319 
6625109 
1.414213562373090 
1.3E-14 
You can regulate the desiderate approximation with the parameter ErrMax 
1
from The art of Computer Programming, D.E.Knuth, Vol.2, Addison-Wesley, 1969 
VB.NET PDF remove image library: remove, delete images from PDF in
Insert Image to PDF. Image: Remove Image from PDF Page. Image: Copy, Paste, Cut Image in Page. Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete
add metadata to pdf file; clean pdf metadata
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Able to remove a single page from adobe PDF document in VB.NET. Ability to remove consecutive pages from PDF file in VB.NET. Enable
pdf metadata viewer online; remove metadata from pdf online
Xnumbers Tutorial 
112 
Continued Fraction  
xFractCont(x, [Digit_Max]) 
FractCont(x) 
These functions perform the continued fraction expansion of a decimal number x 
Usually the continued fraction is written in the 
compact form  x = [a
0
, a
1
, a
2
, a
3
...] 
Each step gives the rational fraction  fi = si / ti , 
where the fractions fi converge to the number x 
....
1
1
1
3
2
1
0
+
+
+
+
=
a
a
a
x a
Both the above functions return an array containing the integer values [ai, si, ti]. 
The algorithm stops when the fraction approximates x with the maximum precision allowed, 
that is 10^-15 and 10^-(DgtMax) respectively for the standard and the multiprecision function. 
Example. Compute the continued fraction 
expansion of the number e
2
= 7.38905... 
with standard precision (error < 1E-15) 
As we can see, the continued fraction of the 
transcendental real number e
2
can be written 
as:  
e
2
= [7, 2, 1, 1, 3, 18, 5, 1, 1, 6, 30, 8...] 
while the correspondent approximating 
fractions are 
e
≅  15/2 (1.5%),  
e
≅  22/3 (0.75%),  
e
≅  37/5 (0.15%),  
e
≅  133/18 (0.002%),  
.... 
Sometime the continued fraction expansion requires the multiprecision. Expand, for example, 
the Ramanujian number  
58
π
e
≅ 24591257751.9999998222132414696... with 30 significant 
digits 
As we can see, the last fraction:  101111070168039846853 / 4111667292  approximates 
58
π
e
with a relative error of about 1E-30   
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
console application. Able to remove a single page from PDF document. Ability to remove a range of pages from PDF file. Free trial package
remove pdf metadata; pdf remove metadata
C# PDF Password Library: add, remove, edit PDF file password in C#
String outputFilePath = Program.RootPath + "\\" Remove.pdf"; // Remove password in the input file and output to a new file. int
search pdf metadata; endnote pdf metadata
Xnumbers Tutorial 
113 
Continued Fraction of Square Root  
FractContSqr(n)   
This function returns the continued fraction 
expansion of the square root of an integer 
number 
[
]
0
3
2
1
0
...2
, , , ,
a
a a a a a a
n=
....
1
1
1
3
2
1
0
+
+
+
+
=
a
a
a
n a
As known, the expansion is infinite and periodic.  
The algorithm stops when it come across into a term double of the first term a
0
This function returns the (m+1) vector [a
0
, a
1
, a
2
,...a
m
]   where am = 2*a
0
Use the ctrl+shift+enter sequence. 
Example. Calculate the continued fraction of  
77
Therefore the infinite, periodic continued fraction is 
[
]
8, 1, 3, 2, 3, 1, 16, 1, 3, 2, 3, 1, 16, 1, 3, 2, 3, 1, 16....
77=
Note that the function returns only the first terms + the period. 
Check Prime 
Prime(n) 
Prime(n) =  "P"  if  n is  prime, or the lowest factor  if n is not prime 
Returns "?"  if the function is not able to check it. 
Example 
prime(134560093) ="P" 
prime(134560079)= 89 
Next Prime 
NextPrime(n) 
This function
1
returns the prime number greater than n or "?" if the function is not able to 
calculate it 
nextprime(9343560093) = 9343560103 
C# PDF bookmark Library: add, remove, update PDF bookmarks in C#.
Ability to remove and delete bookmark and outline from PDF document. Merge and split PDF file with bookmark. Save PDF file with bookmark open.
view pdf metadata in explorer; remove pdf metadata online
C# PDF remove image library: remove, delete images from PDF in C#.
Insert Image to PDF. Image: Remove Image from PDF Page. Image: Copy, Paste, Cut Image in Page. Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete
analyze pdf metadata; remove pdf metadata online
Xnumbers Tutorial 
114 
Modular Addition  
xaddmod(a, b, m)   
Performs the modular addition
1
 )
(mod
)
(
m
a +b
where a, b integer and m positive integer 
Modular Subtraction  
xsubmod(a, b, m)   
Performs the modular subtraction 
 )
(mod
)
(
m
a −b
where a, b integer and m positive integer 
Modular Multiplication  
xmultmod(a, b, m)  
Performs the modular multiplication 
 )
(mod
)
(
m
a⋅b
where a, b integer and m positive integer 
Modular Division  
xdivmod(a, b, m)   
Performs the modular division 
 )
(mod
( / / )
m
a b
where a, b integer and m positive integer 
Remember that the modular division is always possible if, and only, the module m is prime. 
Otherwise the division could be impossible. In that case the function returns "?" 
Modular Power  
xpowmod(a, p, m)  
Performs the modular integer power of a
p
That is defined as the remainder of the integer division of a
p
by m 
− ⋅
=
m
a
m
r a
p
p
1
Modular function xaddmod, xsubmod, xmultmod, xdivmod appear thanks to the courtesy of John Jones 
C# TIFF: TIFF Metadata Editor, How to Write & Read TIFF Metadata
You can also update, remove, and add metadata. List<EXIFField> exifMetadata = collection.ExifFields; You can also update, remove, and add metadata.
pdf metadata online; remove metadata from pdf
VB.NET PDF delete text library: delete, remove text from PDF file
projects. Basically, you can use robust APIs to select a PDF page, define the text character position, and remove it from PDF document.
remove metadata from pdf acrobat; remove metadata from pdf file
Xnumbers Tutorial 
115 
Example: compute 
 9005)
(mod
3
24
xpowmod(3,24,9005) = 3306 
It's easy to prove that  
3306
)
9005
81 (mod
2824295364
)
9005
3 (mod
24
=
=
When the number a or p become larger it is impossible to compute the integer power directly. 
But the function xpowmod can return the correct result. 
Examples: compute 
)
3001
(mod
12
3939040
It would be impossible to compute all the digits of this power. Using multiprecision we have 
xpow(12,3939040) =  1.24575154970238125896669174496E+4250938 
This result shows that 12
3939040
has more then 4 million of digits! 
Nevertheless the remainder of this impossible division is 
xpowmod(12, 3939040,3001) = 947 
Examples: Miscellanea of modular function 
Observe that m = 1000453 is prime. 
Xnumbers Tutorial 
116 
Perfect Square  
xIsSquare(n) 
Checks if a number n is a perfect square 
xisSquare(1000018092081830116) = TRUE 
Because:   1000018092081830116 = 1000009046
2
xisSquare(2000018092081830116) = FALSE 
Check odd/even  
xIsOdd (n)   
Checks if a number n is odd (TRUE) or even (FALSE)  
Check Integer  
xIsInteger(x) 
Checks if a number x is integer  
Xnumbers Tutorial 
117 
Macro - Factorize 
Factorize() 
This macro factorize a number of active cell returning the list of prime number and their 
exponents 
k
e
k
e
e
e
p
n p p p p p
...
3
3
2
2
1
1
=
Select the cell contains the number you want to factorize and the run the macro Factorize from 
the menu or Prime... > Factorize 
Example. Assume to have in the cell A2 the following extended number 
13320493696756339619246691430 
Click “copy” if you want to copy the list in the worksheet, starting from the cell just below cell 
A2. 
This macro uses the trial division method with the prime table generated by the Eratostene's 
sieve algorithm 
This method is adapt for numbers having factors no more that 6 digts max. For higher factor 
the elaboration time becames extremely long and it cames usefull a second factorization 
method, the so called Pollard rho algorithm, for craking a number into two lower factors (not 
necessary prime). Each factors, if not prime, can be factorized separately with the trial division 
method. 
Example. The number  
18446744073709551617 = 274177 * 67280421310721 
can be factorized with both methods: it requires about 33 sec with trial division; but less then 3 
sec with Pollard method 
The following number instead can be factorize only with Pollard method (about 40 sec). 
10023859281455311421 = 7660450463 * 1308520867 
Note that in this case both factors have 10 digits. The factos are prime so the factorization 
stops itself. 
For testing the primality see the probabilistic Prime test
Xnumbers Tutorial 
118 
Large numbers having factors more than 20 digits can be only manipulate with Xnumbers but 
no more factorized. This task requires sophisticated algorithms joined with extreme fast 
routines, usually written in C++ or Assembler.  
When the numbers are very large, no efficient integer factorization algorithm is published; a 
recent effort which factored a 200 digit number (RSA-200) took eighteen months and used over 
half a century of computer time. The supposed difficulty of this problem is at the heart of certain 
algorithms in cryptography such as RSA. 
Not all numbers of a given length are equally hard to factor. The hardest instances of these 
problems are those where the factors are two randomly-chosen prime numbers of about the 
same size, but not too close 
Factoring software is available either in commercial math packages or in standalone freeware 
programs. 
One of the most interesting program released in the public domain, supporting Quadratic Sieve 
(QS) and Number Field Sieve (GNFS), that we have used for many years is Msieve
Batch Factorization with Msieve 
Msieve is a very power freeware program, created by Jason Papadopoulos, for factoring large 
integers. 
You can download the latest version of Msieve.exe from  www.boo.net/~jasonp
No particular installation is required. Simply copy it in any folder that you like, for example, 
/msieve. 
What Msieve Does 
Factoring is the study (half math, half engineering, half art form, and half... genial tricks) of 
taking big numbers and expressing them as the product of smaller numbers. As the number to 
be factored becomes larger, the difficulty involved in completing its factorization explodes and 
the elaboration time increase sharply. The multiprecision library contained in Xnumber, written 
in VBA, is no more sufficient for performing the factorization of number larger of 18-20 digits. 
Msieve can with high probability find the complete factorization of any input number up to about 
125 digits in size. The actual number of digits supported is much higher (up to 164 digits), but 
problems larger than 125 digits are likely to fail. 
Trial division is used on all inputs; if the result is less than 25 digits in size, tiny custom routines 
do the factoring. For larger numbers, the code switches to more powerful methods. Prior to 
version 1.04, those methods were limited to the quadratic sieve (QS). From that point on, 
however, an implementation of Pollard-Brent algorithm and the number field sieve NFS are 
also available. 
A description of QS and NFS can be found in the Msieve Library itself with also a good amount 
of Quadratic Sieve references. 
The oldest users will be pleasant to know that Msieve.exe is a consolle program. It can be 
started at the prompt command (the old DOS enviroment) using the following general syntax  
>> msieve [options] [number] 
Msieve supports many useful options. For a complete list, run the command  
>> msieve -h 
For factoring one number give the following command 
>> msieve -q  8004000546054003543176004301 
8004000546054003543176004301 
p10: 1000400017 
prp10: 2000000011 
prp10: 4000400023 
In this case the program only outputs all the factors found. The code "p10" indicates a prime
factor of 10 digits; "prp10" indicates a probable prime
factor of 10 digits. 
Xnumbers Tutorial 
119 
With the option -v (verbose), the program will also output the factoring trace with many useful 
information (for factoring experts, of course). 
>> msieve -v  8004000546054003543176004301 
One useful option is also the time limit setting  -d  
>> msieve -v -d 10 number 
This elaboration will stop after 10 minute, ended or not, and the intermediate results will be 
saved in a working file, ready for a successive restart. 
Onother way to stop a running elaboration is sending the key sequence CTRL+C to the active 
command window. 
The younger users will be happy to know that this elaboration can be performed directly from 
Excel by the macro Numbers/Factors... 
Note. The first time that you run Msieve from this macro, you have to provide the folder where 
Msieve.exe is located. Follow the simple configuration instructions. 
After that, the macro can start Msieve in batch input mode, returning output in Excel at the end 
of the elaboration.  
Using is very simple. Select the cell containing the number to factorize 
Start the macro Numbers/Factors..., choose the Msieve and click on "Factorize".  
If we like we can modify the job timeout (default 15 min).  
The "Factorization Job Manager" lists and visualizes all the jobs submitted to Msieve.  
Lists Refresh 
Imports the results in 
Excel 
Kills a running job 
Deletes a job  
Verbose mode on/off 
This Help 
The jobs list is automatically refreshed every second. If the refreshing activity stops for some 
reason, you can manually refresh it. 
Documents you may be interested
Documents you may be interested