##### 7.5.5.0. deRhamCohom

Procedure from library `dmodapp.lib` (see dmodapp_lib).

Usage:
  deRhamCohom(f[,w,eng,m]); f poly, w optional intvec,
  eng and m optional ints

Return:
  ring (a Weyl Algebra) containing a list 'DR' of ideal and int

Assume:
  Basering is commutative and over a field of characteristic 0.

Purpose:
  computes a basis of the n-th de Rham cohomology group of the complement
  of the hypersurface defined by f, where n denotes the number of
  variables of the basering

Note:
  The output ring is the n-th Weyl algebra. It contains a list 'DR' with
  two entries (ideal J and int m) such that {f^m*J[i] : i=1..size(I)} is
  a basis of the n-th de Rham cohomology group of the complement of the
  hypersurface defined by f.
  If w is an intvec with exactly n strictly positive entries, w is used
  in the computation. Otherwise, and by default, w is set to (1,...,1).
  If eng<>0, `std` is used for Groebner basis computations,
  otherwise, and by default, `slimgb` is used.
  If m is given, it is assumed to be less than or equal to the minimal
  integer root of the Bernstein-Sato polynomial of f. This assumption is
  not checked. If not specified, m is set to the minimal integer root of
  the Bernstein-Sato polynomial of f.

Theory:
  (SST) pp. 232-235

Display:
  If printlevel=1, progress debug messages will be printed,
  if printlevel>=2, all the debug messages will be printed.

Example:

    LIB "dmodapp.lib";
    ring r = 0,(x,y,z),dp;
    poly f = x^3+y^3+z^3;
    def A = deRhamCohom(f); // we see that the K-dim is 2
    setring A;
    DR;
    ==> [1]:
    ==>    _[1]=-x^3*Dx*Dy*Dz
    ==>    _[2]=-x*y*z*Dx*Dy*Dz
    ==> [2]:
    ==>    -2

See also: deRhamCohomIdeal.

User manual for Singular version 4.4.1, 2025, generated by texi2html.