Files
odfstudio/sc
Tomaž Vajngerl 2c87d392dc solvers: extract the CoinMP problem build and solve into a helper
CoinMPSolver did the whole job in one function: sample the model by
perturbing each variable, build the CoinMP matrix from those
coefficients, solve, and read the result back. Move the matrix
build and solve into a standalone helper, coinmpSolveLinearModel,
that  takes the sampled coefficients plus the variable bounds and
column  types and returns the solution and status.

The helper treats the first entry of each cell's coefficient vector
as the value of an affine model at the origin and the rest as the
per variable slopes, which is what the existing sampling already
produces. That keeps the same convention while letting a future
caller supply coefficients sampled around a different point and its
own bounds, which is what a sequential linear programming loop
needs.

No behaviour change. CoinMPSolver still samples and sets up bounds
and column types exactly as before, then calls the helper. The
CoinMP solver unit test passes unchanged.

Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: I6d373a48caa9d67a932a599068368bae978f1f22
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/4648
Tested-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 197f790a93880f56dd53db43e6bbb61c22ccfdc2)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208337
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-21 11:39:34 +02:00
..
…
2026-03-04 12:37:18 +01:00
2026-03-04 12:37:18 +01:00
…
2026-02-04 14:02:17 +01:00

Spreadsheet Application Code

You can dump some information in a dbgutil build:

Shortcuts

CTRL+SHIFT+F12

Dumps the column width of the first 20 columns.

CTRL+SHIFT+F11

Dumps the graphic objects and their position and size in pixel.

CTRL+SHIFT+F6

Dumps the SfxItemSet representing the cell properties' of the current selection as a xml file. The file will be named dump.xml

The Cache Format

ScDocument::StoreTabToCache allows storing the content (not the formatting) of a table to a binary cache format.

The format is column orientated which allows quick serialization of the table.

  • Header:

    • Number of Columns: 64 bit unsigned integer
  • Column:

    • Column Index: 64 bit unsigned integer
    • Column Size: 64 bit unsigned integer
    • For each cell type block a new ColumnBlock
  • ColumnBlock:

    • Start Row: 64 bit unsigned integer
    • Block Size: 64 bit unsigned integer
    • Type: 8 bit unsigned integer
      • 0 : empty
      • 1 : numeric
        • for each cell: 64 bit IEEE 754 double precision value
      • 2 : string
        • for each cell: 32 bit signed string length followed by string length bytes of the string (UTF-8)
      • 3 : formula
        • for each cell: 32 bit signed string length followed by the formula in R1C1 notation as a string

Functions Supporting Wildcards or Regular Expressions

As this comes up every now and then, and rather should be documented in an extra list of the Help system, functions that support Wildcards or Regular Expressions and depend on the setting under Tools -> Options -> Calc -> Calculate are those that in ODF OpenFormula (ODFF) are defined to depend on the HOST-USE-REGULAR-EXPRESSIONS or HOST-USE-WILDCARDS properties, see ODF v1.3 part4 3.4 Host-Defined Behaviors https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part4-formula/OpenDocument-v1.3-os-part4-formula.html#__RefHeading__1017868_715980110

  • Array Functions
    • CHOOSECOLS
    • CHOOSEROWS
    • DROP
    • EXPAND
    • HSTACK
    • VSTACK
    • TAKE
    • TEXTSPLIT
    • TOCOL
    • TOROW
    • WRAPCOLS
    • WRAPROWS
  • Database Functions
    • DAVERAGE
    • DCOUNT
    • DCOUNTA
    • DGET
    • DMAX
    • DMIN
    • DPRODUCT
    • DSTDEV
    • DSTDEVP
    • DSUM
    • DVAR
    • DVARP
  • Information Functions
    • COUNTIF
    • COUNTIFS
  • Lookup Functions
    • HLOOKUP
    • LOOKUP
    • MATCH
    • XMATCH
    • VLOOKUP
    • XLOOKUP
    • FILTER
    • SORT
    • SORTBY
    • UNIQUE
  • Mathematical Functions
    • RANDARRAY
    • SEQUENCE
    • SUMIF
    • SUMIFS
  • Statistical Functions
    • AVERAGEIF
    • AVERAGEIFS
  • Text Functions
    • SEARCH