#: plugins/fn-financial/functions.c:2021
msgid ""
"@FUNCTION=PPMT\n"
"@SYNTAX=PPMT(rate,per,nper,pv[,fv,type])\n"
"@DESCRIPTION=PPMT calculates the amount of a payment of an annuity going "
"towards principal.\n"
"\n"
"Formula for it is:\n"
"PPMT(per) = PMT - IPMT(per)\n"
"where:\n"
"\n"
"PMT = Payment received on annuity\n"
"IPMT(per) = amount of interest for period per\n"

-- probably "... interest for period @per\n"

I don't know whether it should be thus marked within the formula as
well. If so, there are more of these in the same group.

---

#: plugins/fn-financial/functions.c:2842
msgid ""
"@FUNCTION=ODDLPRICE\n"
"@SYNTAX=ODDLPRICE(settlement,maturity,last_interest,rate,yld,redemption,"
"frequency[,basis])\n"
"@DESCRIPTION=ODDLPRICE calculates the price per $100 face value of a "
"security that has an odd last coupon period.\n"
"\n"
"@settlement is the settlement date of the security. @maturity is the "
"maturity date of the security. @frequency is the number of coupon payments "
"per year. Allowed frequencies are: 1 = annual, 2 = semi, 4 = quarterly. "
"@basis is the type of day counting system you want to use:\n"
"\n"
"  0  US 30/360\n"
"  1  actual days/actual days\n"
"  2  actual days/360\n"
"  3  actual days/365\n"
"  4  European 30/360\n"
"\n"
"* If @frequency is other than 1, 2, or 4, ODDFYIELD returns #NUM! error.\n"

-- Should be "ODDLPRICE", not "ODDFYIELD" in the last line above.

---

#: plugins/fn-financial/functions.c:3247
msgid ""
"@FUNCTION=COUPPCD\n"
"@SYNTAX=COUPPCD(settlement,maturity,frequency[,basis,eom])\n"
"@DESCRIPTION=COUPPCD returns the coupon date preceeding settlement.\n"
"\n"
...
"@EXAMPLES=\n"
"COUPPCD (DATE(2002,11,29),DATE(2004,2,29),4,0) = 31-AUG-2002\n"

-- "AUG" should not be all-caps.

---

#: plugins/fn-financial/functions.c:3294
   (and also 
   #: plugins/fn-financial/functions.c:3435)
   
msgid ""
"@FUNCTION=COUPNUM\n"
"@SYNTAX=COUPNUM(settlement,maturity,frequency[,basis,eom])\n"
"@DESCRIPTION=COUPNUM returns the numbers of coupons to be paid between the "
"settlement and maturity dates, rounded up.\n"
"\n"
"@settlement is the settlement date of the security.\n"
"@maturity is the maturity date of the security.\n"
"@frequency is the number of coupon payments per year.\n"
"@eom = TRUE handles end of month maturity dates special.\n"
"Allowed frequencies are: 1 = annual, 2 = semi, 4 = quarterly. 6 = bimonthly,
"
"12 = monthly.\n"
"@basis is the type of day counting system you want to use:\n"
"\n"
"  0  MSRB 30/360 (MSRB Rule G33 (e))\n"
"  1  actual days/actual days\n"
"  2  actual days/360\n"
"  3  actual days/365\n"
"  4  European 30/360\n"
"  5  European+ 30/360\n"
"\n"
"* If @frequency is other than 1, 2, or 4, COUPNUM returns #NUM! error.\n"
"* If @basis is omitted, MSRB 30/360 is applied.\n"
"* If @basis is not in between 0 and 4, #NUM! error is returned.\n"
"\n"

-- The number of types of day counting systems listed goes from 0 to 5, but
the allowed range for @basis is stated to be 0 to 4. 

-- Same problem for @frequency - there are more choices listed than are stated
to be allowable.

---

d ""
"@FUNCTION=ERROR.TYPE\n"
"@SYNTAX=ERROR(value)\n"
"@DESCRIPTION=ERROR.TYPE returns an error number corresponding to the given "
"error value.  The error numbers for error values are:\n"

-- Not sure here, but shouldn't @SYNTAX be "@SYNTAX=ERROR.TYPE(value)\n"?

---

#: plugins/fn-info/functions.c:1795
msgid ""
"@FUNCTION=GETENV\n"
"@SYNTAX=GETENV(string)\n"
"@DESCRIPTION=GETENV retrieves a value from the execution environment.\n"
"\n"
"* If the variable specified by @STRING does not exist, #N/A! will be "
"returned.  Note, that variable names are case sensitive.\n"

-- "@STRING" should not be capitalized.

---

#: plugins/fn-logical/functions.c:44
  (also:
  plugins/fn-logical/functions.c:134
  plugins/fn-logical/functions.c:193
  
  
msgid ""
"@FUNCTION=AND\n"
"@SYNTAX=AND(b1, b2, ...)\n"
"@DESCRIPTION=AND implements the logical AND function: the result is TRUE if "
"all of the expressions evaluate to TRUE, otherwise it returns FALSE.\n"
"\n"
"@b1, trough @bN are expressions that should evaluate to TRUE or FALSE.  If "
"an integer or floating point value is provided zero is considered FALSE and "
"anything else is TRUE.\n"

-- "@b1 through @bN ..."

-- "... or floating point value is provided, zero is ..."

---

#: plugins/fn-logical/plugin.xml.in.h:2
msgid "Logical"

#: plugins/fn-logical/plugin.xml.in.h:3
msgid "Logical Functions"

-- Not sure, but should it not be "Logic" and "Logic functions"?

---

#: plugins/fn-lookup/functions.c:431
msgid ""
"@FUNCTION=AREAS\n"
"@SYNTAX=AREAS(references)\n"
"@DESCRIPTION=AREAS returns the number of areas in @reference. \n"
"\n"
"@EXAMPLES=\n"
"AREAS((A1,B2,C3)) equals ^C.\n"
"\n"

-- The parameter should probably be "reference"

-- The example result looks mighty strange, but what do I know :)

---

#: plugins/fn-lookup/functions.c:557
  (and also:
  plugins/fn-lookup/functions.c:615
  )
msgid ""
"@FUNCTION=VLOOKUP\n"
"@SYNTAX=VLOOKUP(value,range,column[,approximate,as_index])\n"
"@DESCRIPTION=VLOOKUP function finds the row in range that has a first column "
"similar to value.  If @approximate is not true it finds the row with an "

-- Should be "@value"

"exact equivilance.  If @approximate is true, then the values must be sorted "
"in order of ascending value for correct function; in this case it finds the "
"row with value less than @value.  It returns the value in the row found at a "
"1 based offset in @column columns into the @range.  @as_index returns the 0 "
"based offset that matched rather than the value.\n"
"\n"

-- Probably "1-based" and "0-based"

---

#: plugins/fn-lookup/functions.c:673
msgid ""
"@FUNCTION=LOOKUP\n"
"@SYNTAX=LOOKUP(value,vector1,vector2)\n"
"@DESCRIPTION=LOOKUP function finds the row index of 'value' in @vector1 and "
"returns the contents of value2 at that row index. If the area is longer than "
"it is wide then the sense of the search is rotated. Alternatively a single "
"array can be used.\n"
"\n"
"* If LOOKUP can't find @value it uses the next largest value less than "
"value.\n"

-- "@value" rather than "value" or "'value'"

-- "@vector2" rather than "@value2"

---

#: plugins/fn-lookup/functions.c:735
msgid ""
"@FUNCTION=MATCH\n"
"@SYNTAX=MATCH(seek,vector[,type])\n"
"@DESCRIPTION=MATCH function finds the row index of @seek in @vector and "
"returns it.\n"
"\n"
"If the area is longer than it is wide then the sense of the search is "
"rotated. Alternatively a single array can be used.\n"
"\n"
"* The @type parameter, which defaults to +1, controls the search:\n"
"* If @type = 1, MATCH finds largest value <= @seek.\n"
"* If @type = 0, MATCH finds first value == @seek.\n"
"* If @type = -1, MATCH finds smallest value >= @seek.\n"
"* For type 0, the data can be in any order.  For types -1 and +1, the data "
"must be sorted.  (And in this case, MATCH uses a binary search to locate the "
"index.)\n"

-- Not as clear-cut but probably "@type 0" or "@type = 0" and "@type = -1 or
+1"

---

#: plugins/fn-lookup/functions.c:794
msgid ""
"@FUNCTION=INDIRECT\n"
"@SYNTAX=INDIRECT(ref_text,[format])\n"
"@DESCRIPTION=INDIRECT function returns the contents of the cell pointed to "
"by the ref_text string. The string specifices a single cell reference the "
"format of which is either A1 or R1C1 style. The style is set by the format "
"boolean, which defaults to the former.\n"
"\n"

-- "@ref_text" rather than "ref_text" and "@format" rather than "format"

-- Also, perhaps, ".. which deafults to the A1 style.", which makes it a
little clearer.

---

#: plugins/fn-lookup/functions.c:903
  (Also in:
  plugins/fn-lookup/functions.c:1070
  )
msgid ""
"@FUNCTION=COLUMN\n"
"@SYNTAX=COLUMN([reference])\n"
"@DESCRIPTION=COLUMN function returns an array of the column numbers taking a "
"default argument of the containing cell position.\n"
"\n"

-- Maybe just me, but I find that sentence to be difficult to parse (I have to
look at the example to understand it). Maybe something like this would be
better: "COLUMN returns an array of column numbers. Without an explicit 
reference, it returns the column number of its own cell."

---


#: plugins/fn-lookup/functions.c:1013
msgid ""
"@FUNCTION=OFFSET\n"
"@SYNTAX=OFFSET(range,row,col,height,width)\n"
"@DESCRIPTION=OFFSET function returns a cell range. The cell range starts at "
"offset (@col,@row) from @range, and is of height @height and width @width.\n"
"\n"
"* If range is neither a reference nor a range returns #VALUE!.\n"
"* If either height or width is omitted the height or width of the reference "
"is used.\n"

-- The description should match the order of the parameters: "(@row,@col)"

-- Should be "@range", "@height" and "@width" in the last lines.

-- Should be ".. nor a range, OFFSET returns #VALUE!.\n"

---

#: plugins/fn-lookup/functions.c:1123
msgid ""
"@FUNCTION=ROWS\n"
"@SYNTAX=ROWS(reference)\n"
"@DESCRIPTION=ROWS function returns the number of rows in area or array "
"reference.\n"
"\n"
"* If @reference is neither an array nor a reference nor a range, ROWS "
"returns #VALUE! error.\n"
"\n"
"@EXAMPLES=\n"
"ROWS(H7:I13) equals 7.\n"
"\n"
"@SEEALSO=COLUMN,ROW,ROWS"

-- @SEEALSO should be "COLUMN,COLUMNS,ROW"

---

#: plugins/fn-lookup/functions.c:1173
msgid ""
"@FUNCTION=TRANSPOSE\n"
"@SYNTAX=TRANSPOSE(matrix)\n"
"@DESCRIPTION=TRANSPOSE function returns the transpose of the input
@matrix.\n"
"\n"
"@EXAMPLES=\n"
"\n"
"@SEEALSO=MMULT"

-- Umm, why is this in fn-lookup?

---

#: plugins/fn-math/functions.c:141
  (Also in:
  plugins/fn-math/functions.c:193
  
msgid ""
"@FUNCTION=GCD\n"
"@SYNTAX=GCD(number1,number2,...)\n"
"@DESCRIPTION=GCD returns the greatest common divisor of given numbers.\n"
"\n"
"* If any of the arguments is less than zero, GCD returns #NUM! error.\n"
"* If any of the arguments is non-integer, it is truncated.\n"
"* This function is Excel compatible.\n"
"\n"
"@EXAMPLES=\n"
"GCD(470,770) equals to 10.\n"
"GCD(470,770,1495) equals to 5.\n"
"\n"

-- The examples should be "... equals [value].\n" - "to" should not be there.


---

#: plugins/fn-math/functions.c:424
msgid ""
"@FUNCTION=ATANH\n"
"@SYNTAX=ATANH(x)\n"
"@DESCRIPTION=ATANH function calculates the inverse hyperbolic tangent of @x;
"
"that is the value whose hyperbolic tangent is @x.\n"
"\n"
"* If the absolute value of @x is greater than 1.0, ATANH returns #NUM! "
"error.\n"
"* This function is Excel compatible.\n"
"\n"
"@EXAMPLES=\n"
"ATANH(0.5) equals 0.549306.\n"
" ATANH(0.8) equals 1.098612.\n"

-- Very minor, but no leading space in the last example.

---

#: plugins/fn-math/functions.c:917
msgid ""
"@FUNCTION=BETA\n"
"@SYNTAX=BETA(a,b)\n"
"@DESCRIPTION=BETA function returns the value of the mathematic beta function
"
"extended to all real numbers, but non-negative integers.\n"
"\n"
"* If @a or @b are non-positive integers, BETA returns #NUM! error.\n"
"\n"
"@EXAMPLES=\n"
"\n"
"@SEEALSO=BETA,GAMMALN"

-- @SEEALSO should not include BETA

-- Maybe not a problem, but isn't non-negative integers a proper subset of
real numbers? If negative integers are the problem, maybe it should state
"... real numbers, except negative integers." or similar. My own math skills
are too rusty to remember this atm.


---

d ""
"@FUNCTION=MOD\n"
"@SYNTAX=MOD(number,divisor)\n"
"@DESCRIPTION=MOD function returns the remainder when @divisor is divided "
"into @number.\n"
"\n"
"* MOD returns #DIV/0! if divisor is zero.\n"

-- "@divisor" rather than "divisor" in the last line above.

---

#: plugins/fn-math/functions.c:2694
  (Also in:
  plugins/fn-math/functions.c:2912
  )
msgid ""
"@FUNCTION=MINVERSE\n"
"@SYNTAX=MINVERSE(matrix)\n"
"@DESCRIPTION=MINVERSE function returns the inverse matrix of a given "
"matrix.\n"

-- Should be "@matrix" in the last line above.


---

#: plugins/fn-random/functions.c:49
msgid ""
"@FUNCTION=RAND\n"
"@SYNTAX=RAND()\n"
"@DESCRIPTION=RAND returns a random number between zero and one ([0..1]).\n"
"\n"
"* This function is Excel compatible.\n"
"\n"
"@EXAMPLES=\n"
"RAND() returns a random number greater than zero but less than one.\n"
"\n"
"@SEEALSO=RANDBETWEEN"

-- My math is rusty, but isn't the notation for a non-inclusive range "(0..1)"
rather than "[0..1]"? Or is it inclusive, and the line under @EXAMPLES is just
a cut-n-paste error?


---

d ""
"@FUNCTION=RANDNEGBINOM\n"
"@SYNTAX=RANDNEGBINOM(p,failures)\n"
"@DESCRIPTION=RANDNEGBINOM returns a negative binomially-distributed random "
"number.\n"
"\n"
"* If @p < 0 or @p > 1, RANDNEGBINOM returns #NUM! error.\n"
"* If @failures RANDNEGBINOM returns #NUM! error.\n"

-- If @failures what?

---

#: plugins/fn-random/functions.c:780
msgid ""
"@FUNCTION=RANDLOG\n"
"@SYNTAX=RANDLOG(p)\n"
"@DESCRIPTION=RANDLOG returns a logarithmic-distributed random number.\n"
"\n"
"* If @p < 0 or @p > 1 RANDLOG returns #NUM! error.\n"
"\n"
"@EXAMPLES=\n"
"RANDHYPERG(0.72).\n"
"\n"

-- The example should be "RANDLOG", not "RANDHYPERG"

---

#: plugins/fn-random/functions.c:854
msgid ""
"@FUNCTION=RANDGUMBEL\n"
"@SYNTAX=RANDGUMBEL(a,b[,type])\n"
"@DESCRIPTION=RANDGUMBEL returns a Type I or Type II Gumbel-distributed "
"random number. @type is either 1 or 2 and specifies the type of the "
"distribution (Type I or Type II).\n"
"\n"
"* If @type is either 1 or 2, RANDGUMBEL returns #NUM! error.\n"

-- Last line should read "If @type is neither 1 or 2"

---

#: plugins/fn-random/functions.c:890
msgid ""
"@FUNCTION=RANDLEVY\n"
"@SYNTAX=RANDLEVY(c,alpha[,beta])\n"
"@DESCRIPTION=RANDLEVY returns a Levy-distributed random number. If @beta is "
"ommitted, it is assumed to be 0.\n"
"\n"
"* For alpha = 1, beta=0, we get the Lorentz distribution.\n"
"* For alpha = 2, beta=0, we get the Gaussian distribution.\n"

-- "omitted" rather than "ommitted"

-- "@alpha" and "@beta" rather than "alpha" and "beta"

---

#: plugins/fn-random/functions.c:925
msgid ""
"@FUNCTION=RANDEXPPOW\n"
"@SYNTAX=RANDEXPPOW(a,b)\n"
"@DESCRIPTION=RANDEXPPOW returns a random variate from the exponential power "
"distribution with scale parameter @a and exponent @b. The distribution is,\n"
"\n"
"\tp(x) dx = {1 over 2 a Gamma(1+1/b)} exp(-|x/a|^b) dx, for x >= 0.\n"
"\n"
"* For b = 1 this reduces to the Laplace distribution.\n"
"* For b = 2 it has the same form as a gaussian distribution, but with a = "
"sqrt{2} sigma.\n"

-- "@a" and "@b" rather than "a" and "b"

-- Also, last line should be "but with a sigma = sqrt{2}.\n"


---

d ""
"@FUNCTION=RANDGAUSSIANTAIL\n"
"@SYNTAX=RANDGAUSSIANTAIL(a,sigma)\n"
"@DESCRIPTION=RANDGAUSSIANTAIL returns a random variates from the upper tail "
"of a Gaussian distribution with standard deviation sigma. The values "
"returned are larger than the lower limit a, which must be positive. The "
"method is based on Marsaglia's famous rectangle-wedge-tail algorithm (Ann "
"Math Stat 32, 894-899 (1961)), with this aspect explained in Knuth, v2, 3rd "
"ed, p139, 586 (exercise 11).\n"
"\n"
"The probability distribution for Gaussian tail random variates is,\n"
"\n"
"\tp(x) dx = {1 over N(a;sigma)} exp (- x^2/(2 sigma^2)) dx,\n"
"\n"
"for x > a where N(a;sigma) is the normalization constant, N(a;sigma) = (1/2)
"
"erfc(a / sqrt(2 sigma^2)).\n"

-- "@a" and "@sigma" rather than "a" and "sigma"

---

#: plugins/fn-random/functions.c:1020
msgid ""
"@FUNCTION=SIMTABLE\n"
"@SYNTAX=SIMTABLE(d1, d2, ..., dN)\n"
"@DESCRIPTION=SIMTABLE returns one of the values in the given argument list "
"depending on the round number of the simulation tool. When the simulation "
"tool is not activated, SIMTABLE returns @d1.\n"
"\n"
"With the simulation tool and the SIMTABLE function you can test given "
"decision variables. Each SIMTABLE function contains the possible values of a "
"simulation variable. In most of valid simulation models you should have the "

-- "In most valid simulation ..."

"same number of values @dN for all decision variables.  If the simulation is "
"run more rounds than there are values defined, SIMTABLE returns #N/A! error "
"(e.g. if A1 contains `=SIMTABLE(1)' and A2 `=SIMTABLE(1,2)', A1 yields #N/A! "
"error on the second round).\n"
"\n"
"The successive use of the simulation tool also requires that you give to the "
"tool at least one input variable having RAND() or any other "
"RAND<distribution name>() function in it. On each round, the simulation tool "
"iterates given number of times all the input variables to revalue them. On "

-- "iterates for the given number of rounds over all the input variables to
reevaluate them"

"each iteration, the values of the of the output variables are stored, and "

-- "... the values of the output variables ...

"when the round is completed, descriptive statistical information is created "
"according to the values.\n"






