Contact

BESSELK in Calligra Sheets: Modified Bessel Function of the Second Kind

Engineering Advanced Calligra Sheets

Calculate K-family Bessel values in Calligra Sheets with worked cells, domain checks, order limits and clearly separated source and native evidence.

Verification status: Consult the documentation, examples and any stated test scope below. How formula examples are checked

Quick answer: BESSELK(x; n) evaluates the modified bessel function of the second kind, Kₙ(x). For example, =BESSELK(3;9) has an independently calculated result of approximately 397.958800327. Use it for a decaying radial basis away from a cylindrical source. K is the modified second-kind family. Do not substitute BESSELI: for order zero and positive increasing x, I grows while K decays.

Calligra-specific restriction: in the checked implementation, x must be nonnegative and n must be an integer from 0 through 28. A fractional n is rejected, not truncated. For useful finite K/Y results, require x > 0; zero is a singularity, even though the shared input check admits it. These statements come from the version-pinned calculation engine, rather than assumptions imported from another spreadsheet.

Availability and evidence status

  • Introduced: original introduction date unknown. Do not interpret a tested or inspected release as the first release.
  • Source availability verified: Calligra 25.04.2 and 26.08.2 both register BESSELK with exactly two arguments. The inspected engineering and calculation-engine files are byte-identical between these two tags.
  • Checked October 18, 2026: KDE handbook, 26.08.2 registration, and 25.04.2 implementation.
  • Native verification: Calligra Sheets 25.04.2, Linux, October 18, 2026. Literal-formula cases were recalculated in the application and saved to ODS. The reference calculations remain separate from these observations; see the native table below. No native 26.08.2 execution is claimed.

Syntax, arguments and defaults

=BESSELK(x; n)
Argument Required input Meaning and limits
x Numeric value, expression or cell reference Dimensionless evaluation point. Source input guard requires x ≥ 0. Use x > 0 for finite results.
n Integer value, expression or cell reference Order, from 0 to 28 inclusive. There is no omitted-order default.
Result Floating-point number Dimensionless K-family value, not an angle or a measurement in the units of r.

Both arguments are mandatory. In the function wrapper, the worksheet order is x first, n second; the internal engine reverses them when calling its numerical routine. Do not reverse the worksheet arguments because a mathematics library writes its own call as function(order, x). The source checks n with an exact integer test; 1.5 is invalid, not order 1. Wrapper and registration · domain guard.

The English examples use a semicolon separator and a decimal point. If your locale parses formulas differently, use the function editor to check local syntax. Keep units in adjacent label cells rather than typing text such as 0.5 m into a numeric argument.

Worked worksheet: evaluate a radial factor

A radial attenuation model outside a cylindrical source can use K₀(k r). With k in inverse metres and r in metres, x = k r is dimensionless. Use this only away from r = 0; K is singular at the origin.

  1. Put the label k (1/m) in A1 and 2 in B1.
  2. Put r (m) in A3, x = k*r in B3, order n in C3 and Kn(x) in D3.
  3. Enter 0.5 in A4 and 1 in A5. These are radii in metres.
  4. Enter =$B$1*A4 in B4 and fill it down to B5. Expected x values are 1 and 2; the inverse-metre and metre units cancel.
  5. Enter 0 in both C4 and C5, selecting order zero.
  6. Enter =BESSELK(B4;C4) in D4 and fill down to D5. Display at least nine decimal places before comparing.
Cell Formula Independently expected value Interpretation
D4 =BESSELK(B4;C4) 0.421024438241 K₀(1), at r = 0.5 m
D5 =BESSELK(B5;C5) 0.11389387275 K₀(2), at r = 1 m

The factor drops with increasing radius here. This illustrates the decaying K basis; it does not by itself determine a physical source strength.

These calculations check the mathematics of the examples. The native table separately records application results for equivalent literal formulas. These checks do not establish accuracy for all inputs, and the step-by-step cell-reference layout itself was not separately executed.

Advanced example: attenuation relative to a reference radius

Let an illustrative field be 10 arbitrary field-units at r = 0.5 m and follow the normalized profile K₀(2r)/K₀(1) outside that radius.

  • In E3 enter Relative field and in E4 enter =D4/$D$4; fill down to E5.
  • E4 is expected to be 1. E5 is approximately 0.270516061313.
  • In F4 enter =10*E4 and fill down: the reference value is 10, and the value at r = 1 m is approximately 2.70516061313 field-units.

The denominator must be the fixed reference-radius value, not the current row. Do not extend this example to r = 0; the K basis is singular there. Normalization removes an arbitrary scale but does not replace a physical boundary-condition analysis.

Limits, errors and troubleshooting

Input or symptom What the checked Calligra source establishes What to do
=BESSELK(1;1.5) Fails the whole-order test and constructs internal errorVALUE. Choose a deliberate integer order. Do not silently truncate a scientific input.
=BESSELK(1;29) Order 29 is outside the implementation limit; 28 is the highest admitted order. Use a suitable numerical tool for higher orders; do not clamp 29 to 28.
=BESSELK(-1;1) Negative x fails the shared domain guard. Do not assume another spreadsheet or the mathematical extension has the same accepted domain.
=BESSELK(1;-1) Negative order fails the guard. Check whether an order sign was accidentally copied from a coefficient.
Missing n or extra arguments The registered function requires exactly two arguments; generic arity validation constructs internal errorVALUE. Supply x and n only.
Unexpected result magnitude At x = 1 and order 28, this family has a very large magnitude (about 1.448 × 10³⁶), unlike the tiny I/J results at the same inputs. Use scientific notation and verify that you selected the intended Bessel family.
Very large x or large magnitude The implementation uses finite-precision numerical approximations. No universal accuracy or overflow guarantee was established here. Compare critical ranges against a suitable independent numerical reference.

The four explicit domain-error formulas in this table were also tested in native 25.04.2 and displayed #VALUE!. Missing/extra-argument behavior here remains source-derived; it was not part of this function’s native fixture. Text/blank/Boolean coercion and localized error labels have not been established by these numerical examples. Validate numeric inputs rather than relying on implicit conversion. Calligra argument-count check · Bessel domain and dispatch.

Zero is a singularity, not a regular test point

The shared guard allows x = 0, but the internal K routine returns HUGE_VAL at that point. For this reason, =BESSELK(0;0) must not be presented as an ordinary finite result. Native Calligra Sheets 25.04.2 displayed INF for this exact zero-input case; that is not a finite valid Bessel value. For finite K values, make x strictly positive rather than using an arbitrary tiny replacement without considering the model. See the numerical routines.

Numerical precision is not identical to the reference calculation

An independent review compiled the isolated numerical routines from the KDE source, separately from the application. That isolated probe is not a native Calligra test; a subsequent native 25.04.2 run independently reproduced the values listed below. That source-algorithm check found BESSELY(4;2) ≈ 0.215903601900667, whereas the independent mathematical reference is ≈ 0.215903594603615. At the supported upper-order boundary, BESSELJ(1;28) was ≈ 1.211320740471416 × 10⁻³⁸ versus the reference ≈ 1.211364502417112 × 10⁻³⁸, a relative difference of about 0.00361%. Therefore, do not interpret the many displayed reference digits in this guide as a promise of equal application accuracy. Compare against the reference and the observed application result separately, especially for higher orders. A fixed absolute tolerance such as 10⁻¹² would incorrectly accept zero in place of these tiny nonzero values.

This guide describes Calligra Sheets, not an Excel-compatible contract. In particular, preserve the 0–28 integer-order restriction, the x-domain rule and the worksheet argument order when moving formulas. The source also registers COM.SUN.STAR.SHEET.ADDIN.ANALYSIS.GETBESSELK as an alternate name for this same function; it does not represent a different Bessel family or merit a duplicate guide. Registration is evidence of the alias, not proof that every imported workbook round-trips unchanged. Registration.

Sources and verification boundary

Reviewed October 18, 2026. Primary implementation evidence: KDE 26.08.2 engineering functions, KDE calculation engine, and KDE 25.04.2 engineering functions. The official function reference supplies the function name and signature. Worked model examples and numerical cross-checks are original calculations; they are not native Calligra observations. The native record below covers the displayed formulas in Calligra Sheets 25.04.2 only; it does not establish behavior for every build, locale or input range.

Native verification in Calligra Sheets 25.04.2

On October 18, 2026, the formulas below were loaded into the actual Linux application, recalculated, and saved to an ODS workbook. Results were read from that native-saved workbook, including error display text. The screenshot shows the real application; it was not synthesized. The independent mathematical values earlier in this guide remain reference values, and small differences are intentional evidence of the numerical approximation rather than transcription errors.

Calligra Sheets 25.04.2 executing BESSELK, with formula bar and native result column visible

Formula executed Native displayed result
=BESSELK(3;9) 3.979587974562E+02
=BESSELK(1;0) 4.210244412775E-01
=BESSELK(2;0) 1.138938727495E-01
=BESSELK(1;28) 1.448011934202E+36
=BESSELK(-1;1) #VALUE!
=BESSELK(1;-1) #VALUE!
=BESSELK(1;1.5) #VALUE!
=BESSELK(1;29) #VALUE!
=BESSELK(0;0) INF
=BESSELK(2;0)/BESSELK(1;0) 2.705160593621E-01
=10*BESSELK(2;0)/BESSELK(1;0) 2.705160593621E+00

The display uses scientific notation: E-03 means multiply by 10⁻³. A small value in scientific notation is not zero. INF identifies the observed non-finite output, not an ordinary validated model result.