Last modified: 7 March 2013
Name: H5Pset_sym_k
Signature:
  herr_t `H5Pset_sym_k`( hid_t `fcpl_id`, unsigned `ik`, unsigned `lk` )

Purpose:
  Sets the size of parameters used to control the symbol table nodes.

Description:
  `H5Pset_sym_k` sets the size of parameters used to control the symbol table nodes.

  This function is valid only for file creation property lists. Passing in a value of zero (`0`) for one of the parameters retains the current value.

  `ik` is one half the rank of a B-tree that stores a symbol table for a group. Internal nodes of the symbol table are on average 75% full. That is, the average rank of the tree is 1.5 times the value of `ik`. The HDF5 library uses `(ik*2)` as the maximum # of entries before splitting a B-tree node. Since only 2 bytes are used in storing # of entries for a B-tree node in an HDF5 file, `(ik*2)` cannot exceed `65536`. The default value for `ik` is `16`.

  `lk` is one half of the number of symbols that can be stored in a symbol table node. A symbol table node is the leaf of a symbol table tree which is used to store a group. When symbols are inserted randomly into a group, the group's symbol table nodes are 75% full on average. That is, they contain 1.5 times the number of symbols specified by `lk`. The default value for `lk` is `4`.

Parameters:

  hid_t `fcpl_id` | IN: File creation property list identifier
  unsigned `ik` | IN: Symbol table tree rank
  unsigned `lk` | IN: Symbol table node size

Returns:
  Returns a non-negative value if successful; otherwise returns a negative value.

Fortran90 Interface: h5pset_sym_k_f

      SUBROUTINE h5pset_sym_k_f (prp_id, ik, lk, hdferr)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: prp_id ! Property list identifier
        INTEGER, INTENT(IN) :: ik            ! Symbol table tree rank
        INTEGER, INTENT(IN) :: lk            ! Symbol table node size
        INTEGER, INTENT(OUT) :: hdferr       ! Error code
                                             ! 0 on success and -1 on failure
      END SUBROUTINE h5pset_sym_k_f

History:

  Release | C
  1.6.4 | `ik` parameter type changed to unsigned.
  1.6.0 | The `ik` parameter has changed from type int to unsigned.