﻿

# c# parse pdf to xml : Remove pdf metadata online Library SDK class asp.net wpf .net ajax xnumbers-tutorial126-part880

Xnumbers Tutorial
260
Spherical Bessel functions of integer order
= BesselSphJ(x, [n])
= BesselSphY(x, [n])
These functions return the Spherical Bessel functions of 1
st
and 2
nd
kind of integer order n = 0,
1, 2... (default n = 0), and for any real  x > 0, definited as:
( )
2
( )
2
1
x
J
x
j x
n
n
+
=
π
Spherical Bessel functions of 1
st
kind
( )
2
( )
2
1
x
Y
x
y x
n
n
+
=
π
Spherical Bessel functions of 2
nd
kind  (also Neuman function)
The Spherical Bessel functions are the solutions of the Helmholtz radial equation in spherical
coordinates
0
)
(
2
2
2
2
2
2
=
+
+
n y
n
x
dx
dy
x
dx
d y
x
j
n
(x)
y
n
(x)
--------------------------------------------------------------------------------
0.5
0.958851077208406
-1.755165123780750
0.301168678939757
-1.381773290676040
0.298637497075734
-0.267038335264499
Remove pdf metadata online - add, remove, update PDF metadata in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Enable VB.NET Users to Read, Write, Edit, Delete and Update PDF Document Metadata
Xnumbers Tutorial
261
Formulas Evaluation
Multiprecision Expression Evaluation
These functions realize a little math shell, putting together the power of multiprecision numeric
computation with the ease of symbolic calculus. Sometime we may want to perform the
computation using symbolic formulas. We would pass these strings to a routine for evaluation,
returning the numerical results with a given accuracy. These functions perform this useful task.
xeval( Formula, [Var], [DgtMax], [Angle],)
xevall( Formula, [Var1, Var2 …] )
These functions return the evaluation of a math expression in multiprecision arithmetic. They
use the same algorithm
1
and have the same variable accuracy. They differ only for the input
parameters.
The parameter "Formula" is a math expression string containing variables, operators,
parenthesis and other basic functions. Examples.
3+1/(x^2+y^2), sin(2*pi*t)+4*cos(2*pi*t), (x^4+2x^3+6x^2-12x-10)^(1/2)
The optional parameter "Var" is an array containing one or more value for variables
substitution. Before computing, the parser substitutes each symbolic variable with its
correspondent value. It can be a single value, an array of values or, even an array of values +
labels (see examples).
The optional parameter "Var1", "Var2"... are single values or array as "Var" but without labels,
because the function xevall automatic finds by itself the appropriate labels. (See example)
The optional parameter "DgtMax" – from 1 to 200 - sets the maximum number of precision
digits (default=30). Setting DgtMax = 0 will force the function to evaluate in faster standard
precision.
The optional parameter "Angle" sets the angle unit "RAD” (default) “DEG”, “GRAD”.of for
trigonometric computation:
Example:
xeval("(1+sqr(2))/2+5^(1/3))") = 2.91708272786324451375395323463
xeval("(1+cos(x))/2+x^y" , {5, 1.2}) = 7.5404794000376872941836369067
xeval("(a+b)*(a-b)", {2, 3})= (2+3)*(2-3) = -5
All the function parameters can also be passed by cell references, like A1, \$B\$2, etc.
Example. Tabulate the following function for x = 1, 1.5, 2, … with 30 significant digits
2
1
1
( )
x
x
f x
+
+
=
1
The algorithm is divided into two steps: parsing and evaluation. The first step is performed by the MathParser class.
The evaluation is performed with the x-functions of  XNUMBERS.
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Ability to remove consecutive pages from PDF file in VB Enable specified pages deleting from PDF in Visual Basic Online source codes for quick evaluation in VB
VB.NET PDF remove image library: remove, delete images from PDF in
Image: Insert Image to PDF. Image: Remove Image from PDF Page. Image Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete Metadata. Form Process.
Xnumbers Tutorial
262
Note how the use of this function is simple and straight comparing with the correspondent
nested formulas
Calculating functions with more than one variable a bit complication arises, because we have to
pay attention which values are assigned to the variables. Let’s see this example
Calculate the following bivariate function for x = 2.4, y = 5.5
2
1
ln( )
( , , )
x
xy
y
f x x y
+
+
=
In order to pass to the parameter "Var" the correct value for each variable we select the
variables range B2:C3 including the labels "x" and "y" (header). The labels must contain the
same symbols contained into the formula string
Note. If we pass the range B3:C3 without labels, the function assigns the values to the
variables in the same order that they appear in the formula, from left to right. In our example
the first variables is “y” and the second is “x”, so the function assignes the first value 2.4 to “y”
and the second value 5.5 to “x”
To by-pass the variable order rule, the function uses the trick of the “variables labels”. On the
contrary, for one or none variable it is impossible to make confusion so the header can be
omitted.
Variables order
. The function returns the variables order in the Excel function insertion panel
In our example we see the string “y x” , that means you have to pass the first value for the
variable “y” and the second value for the variables “x”
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Free online C# class source code for deleting specified PDF pages in .NET console application. Able to remove a single page from PDF document.
Support to add password to PDF document online or in C# String outputFilePath = Program.RootPath + "\\" Remove.pdf"; // Remove password in the input file and
Xnumbers Tutorial
263
The variables order is by-passed by labels. Using labels you do not need to worry about the
variables order
Let’s see another example. Calculat,e with 30 digits precision, the following function
cos(2 )
)
sin(
( , , , )
x
x b
a
f x x ab
=
for x = 30° deg , a = 1 , b = -2
Note that we have set the angle unit = “DEG”
Note also that in this case the variable order would be “a, x, b”, but with the aid of the labels the
function can associate the exact parameters in the right way.
Sometime it is not possible to add a label near its value (in the middle of a table, for example).
Neither all parameters are located adjacent each others. For these cases we can use the
second evaluator function xevall
This function accepts separate parameters or separate array. We do not need to pass variables
labels. The function automatically finds all labels present on the active worksheet
Of course all this has a cost. the function xevall is about 10 times slower then xeval.
Let’s see how it works with an example. Tabulate the given trigonometric function, from t = 0 to
0.5, with step = 0.1 and an error less then 1E-20
)
cos(
)
cos(
()
t
t b
f t t a
⋅ + + ⋅
= ⋅
π
π
where   a = 0.5   and   b = -2
The above sheet shows a possible arrangement. If we look the last cell B8 we discover that the
parameters are:
Var1  the cell A8 containing the value of the independent variable “t”
Var2  the range “C4:D4”, containing the values of the parameters “a” and “b”
Var3  range “C7:D7”, containing the internal parameter “DgtMax” and “AngleSet”
The internal parameters “DgtMax” and “AngleSet” are reserved word and must write as is.
Note also that the cell A8 has no label, but the function performs the correct assignment to the
“t” variable.
C# PDF remove image library: remove, delete images from PDF in C#.
Text in PDF. Image: Insert Image to PDF. Image: Remove Image from PDF Page. Cut Image in Page. Link: Edit URL. Bookmark: Edit Bookmark. Metadata: Edit, Delete
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.
Xnumbers Tutorial
264
Label Rules. Labels must stay always at the
top or at the left of the corresponding values.
Labels can have any alphanumeric name
starting with any letter and not containing any
blank.
In the example:
t = 0.1, a = 0.5 , DgtMax = 30
The function xevall only assigns the cell value to the variable on top to the correspondent
column. Othewise it assigns the value to the variable on the left to the correspondent row.
VB.NET PDF delete text library: delete, remove text from PDF file
to remove text format by modifying text font, size, color, etc. Other PDF edit functionalities, like add PDF text, add PDF text box and field. Online .NET
Remove password from PDF. Dim outputFilePath As String = Program.RootPath + "\\" Remove.pdf" ' Remove password in the input file and output to a new file.
Xnumbers Tutorial
265
Complex Expression Evaluation
=cplxeval( Formula, [Var1, Var2 …] )
This function
1
evaluates a math expression in complex arithmetic.
The parameter "Formula" is a math expression string containing variables, operators,
parenthesis and other basic functions.
(3+8j)*(-1-4j) ,  (1+i)*ln(1+3i) ,  ((x+3i)/(x+4-2i))^(1-i)
The optional parameter "Var1", "Var2",... can be single or complex value. See How to insert a
complex number  for better details
Example: Evaluate the given complex polynomial for z = 2 – i
(3 ) ) (2 2 5)
2
i
iz
z
+ +
+ +
Note that we use the complex rectangular format, i.e. "3+2j",  only in the symbolic math
formula.
When we pass a complex value to a variable
we must always use the double cell format.
Note also that we can write “i” or “j” as well for
imaginary symbol, the parser can recognize
both of them.
For complex numbers labels are not supported. When we have formulas with two or more
variables, we must provide the values for variable substitutions in the exact order that they
appear in the formula, starting from left to right. The formula wizard will easily help you. Look at
this example.
Example. Compute the expression for the given complexes values
)
)(
(
()
ks
s a a s s b
e
F s
=
s = 1 + j  , a = 1  4j  ,   b = 3 + 6j ,
k =  0.5
In the cell B2 we have inserted the string     “exp(k*s)/((s-a)(s-b)”
When we enter the formula, the parser
recognizes the variables symbols and shows
us the exact order in which we have to pass to
the function itself.
In this case: k,  s,  a,  b
1
This function uses the clsMathParserC class by A. De Grammont and L. Volpi
Xnumbers Tutorial
266
Multiprecision Excel Formula Evaluation
= xCalc(Formula, [DgtMax])
This function
1
is useful for performing multiprecision calculation directly in a worksheet
Formulas can be entered just like in Excel and it may also contain references to other cells.
The optional parameter "DgtMax" – from 1 to 200 – sets the maximum number of precision
digits (default=30).
This smart functions has several advantages: it is easy to use and can handle long formula; the
formula is not changed at all and can keep the references to other cells. The only drawback
remains its speed because the function have to parse the formula and evaluate the result using
the multiprecision arithmetic; therefore the evaluation takes about 5-6 times slower then basic
x-functions.
Of course, not all the Excel functions can be converted. The functions recognized are.
-  *  /  ^   ABS  ACOS  ACOSH  ASIN  ASINH  ATAN  ATANH
COMBIN  COS  COSH  EXP  FACT  INT  LN  LOG  MOD  PI
ROUND  SIGN  SIN  SINH  SQRT  TAN  TANH
Nota. The functions are indicated with their original English names, that usually are different from the local names.
Let's see how it works. Assume to have in a cell the following Excel formula
=(A2*EXP(B2)+A4*EXP(B4))/(A2^2+A4^2)
Note that the formula references the values of other 4 cells: A2, B2, A4, B4
The formula value, calculated in standard precision,  is 0.0140820785524786
We can get the value in 30 significant digits applying the xCalc function
=xCalc(  (A2*EXP(B2)+A4*EXP(B4))/(A2^2+A4^2)  )
For that, simply, select the cell D2 and move the mouse to the input field; insert xCalc( ... )  just
around the original formula.
The result in the cell D4 has now a precision of 30 significat digits
Observe that the the external cells links remain active and the formula is unchanged as in a
standard Excel formula
1
The function xCalc appears thanks to Ton Jeursen.
Xnumbers Tutorial
267
Note that, using the x-function, the above formula should be translated as
The result is equivalent but it is evident the great advantage to keep the original formula.
Xnumbers Tutorial
268
Math expression strings
Functions like Integr, Series, xeval, xevall, cplxeval operate with symbolic math expressions
by the aid of clsMathParser and claMathparserC (two internal class modules).
These programs (for real and complex numbers) accept in input any string representing an
arithmetic or algebraic expression with a list of variable values and return a multiprecision
numeric result. Typical math expressions are:
1+(2-5)*3+8/(5+3)^2
sqr(2)+asin(x)
(a+b)*(a-b)
x^2+3*x+1
1.5*exp(-t/12)*cos(pi*t + pi/4)
(1+(2-5)*3+8/(5+3)^2)/sqr(5^2+3^2)
2+3x+2x^2
0.25x + 3.5y + 1
sqr(4^2+3^2)
1/(1+e# ) + Root(x,6)
(-1)^(2n+1)*x^n/n!
|x-2|+|x-5|
And((x<2),(x<=5))
sin(2*pi*x)+cos(2*pi*x)
Variables can be any alphanumeric string and must start with a letter
x, y, a1, a2, time, alpha , beta
Also the symbol "_" is accepted to build variable names in "programming style".
time_1, alpha_b1 , rise_time
Capitals are accepted but ignored. Names such as "Alpha", "alpha", "ALPHA" indicate the
same variable.
Implicit multiplication is not supported because of its intrinsical ambiguity. So "xy" stands for
variable named "xy" and not for x*y. The multiplication symbol "*" generally cannot be omitted.
It can be omitted only for coefficients of the classic math variables x, y, z. It means that string
like 2x and 2*x are equivalent
2x, 3.141y, 338z^2      2*x, 3.141*y, 338*z^2
On the contrary, the following expressions are illegal in this context.
2a, 3(x+1), 334omega
Constant numbers can be integer, decimal, or exponential
2   -3234   1.3333   -0.00025   1.2345E-12
Note: This version support also the comma "," as decimal separator, depending on your system
internation option setting.
1,3333   -0,00025   1,2345E-12
Logical expressions are now supported
x<1      x+2y >= 4        x^2+5x-1>0       t<>0      (0<x<1)
Logical expressions return always 1 (True) or 0 (False). Compact expressions, like “0<x<1” ,
are now supported; you can enter:
(0<x<1) as well (0<x)*(x<1)
Numerical range can be inserted using logical symbols and Boolean functions. For example:
For   2<x<5
insert     (2<x)*(x<5)  or also (2<x<5)
For  x<2 , x>=10     insert     OR(x<2, x>=10)    or also   (x<2)+(x>=10)
For  -1<x<1
insert     (x>-1)*(x<1)    ,   or  (-1<x<1)  , or also    |x|<1
Xnumbers Tutorial
269
Piecewise Functions. Logical expressions can also be useful for defining a piecewise
function, such as:

2x-1-ln(2)
x ≤ 0.5
f(x) =
ln(x)
0.5< x < 2

x/2-1+ln(2)
2
The above function can be written as:
f(x) = (x<=0.5)*(2*x-1-ln(2))+(0.5<x<2)*ln(x)+(x>=2)*(x/2-1+ln(2))
The parser adopts a new algorithm for evaluating math expressions depending on logical
expressions, which are evaluated only if the logical conditions are true (Conditioned-Branch
algorithm). Thus, the above piecewise expression can be evaluated for any real value x without
any domain error. Note that without this features the formula could be evaluated only for x>0.
Another way to compute piecewise functions is splitting it into several formulas (see example 6)
Math Constants supported are: Pi Greek (
π
), Euler-Napier (e)
pi = 3.14159265358979    or  pi# = 3.14159265358979
e# = 2.71828182845905
Angle expression
For example if you set the unit "DEG", all angles will be read and converted into degrees
sin(120) => 0.86602540378444
asin(0.86602540378444) => 120
Angles can also be write in DMS format like for example 29d 59m 60s
sin(29d 59m 60s)  =>  0.5        ,   29d 59s 60m  =>  30
Note This format is only for sexagesimal degree. It is independent from the unit set
Complex number can be indicated in a formula string as an ordered couple of number
enclosed into parenthesis “(..)” and divided by a comma “,”  like for example:
(2, 3)    (a, b)    (-1, -0.05)   (-1.4142135623731,  -9.94665E-18)
On the other hand, complex numbers can also be indicate by the common rectangular form:
3+3j   a+bj   -1  0.05j    -1.4142135623731  9.94665E-18j
You note that the second form is suitable for integer numbers, while, on the contrary, for
decimal or exponential number the first one is clearer. The parenthesis form is more suitable
also in nested results like
((2+3*4), (8-1/2)) that gives the complex number (14, 7.5)
Note: Pay attention if you want to use the rectangular convention in nested formulas.
wrong (2+3*4)+(8-1/2)j.       correct (2+3*4)+(8-1/2)*j     .
Do not omit the product symbol “*” before j because the parser recognize it as an expression,
not a complex number. The product symbol can be omitted only when before the letter “j” is a
constant number
Note: You can use both “j” and “i” for indicating the imaginary number
−1
Functions
Functions are called by their function-name followed by parentheses. Arguments can be:
numbers, variables, expressions, or even other functions.
sin(x)    log(x)      cos(2*pi*t+phi)   atan(4*sin(x))
max(a,b)  root(x,y)   comb(n,k)         beta(x,y)