hessMTTm

Purpose

Computes numerical Hessian with mask using available threads.

Format

h = hessMTTm(&fct, par1, data1, mask)
Parameters:
  • fct (scalar) – pointer to procedure returning either Nx1 vector or 1x1 scalar.
  • par1 (struct) – structure of type PV containing parameter vector at which Hessian is to be evaluated
  • data1 (struct) – structure of type DS containing any data needed by fct
  • mask (KxK matrix) – elements in h corresponding to elements of mask set to zero are not computed otherwise are computed
Returns:

h (KxK matrix) – Hessian

Examples

// Define a PV structure
struct PV p1;

// Create p1 PV structure
p1 = pvCreate;

// Fill PV structure
p1 = pvPack(p1, 0.1|0.2, "P");

// Create data matrix
x = seqa(1, 1, 15);

// Mask
mask = { 1 1
         1 0 };

// Function to compute Hessian
proc fct(struct PV p0, x);
   local p, y;

   // Unpack parameters
   p = pvUnpack(p0, "P");

   // Define Hessian
   y = p[1] * exp( -p[2] * x);

  retp(y);
endp;

// Find Hessian
h = hessMTTm(&fct, p1, x, mask);

Remarks

par1 must be created using the pvPack() procedures. Only lower left part of mask looked at.

Source

hessmtt.src