Golem is hosted by Hepforge, IPPP Durham

src/module/form_factor_type [ Modules ]

[ Top ] [ Modules ]

NAME

  Module form_factor_type

USAGE

  use form_factor_type

DESCRIPTION

  This module contains two type definitions : the form factors and
  epsilon type. This module overloads the *, /, +, -, = and ** operators

OUTPUT

  This module exports two types:
  * form_factor -- define the type of the fom factors
  * epsilon_type -- define the type for object having an epsilon expansion

  five operators:
  * * -- overload of the multiplication operator for form_factor and epsilon_type object
  * / -- overload of the division operator for form_factor and epsilon_type object
  * + -- overload of the addition operator for form_factor and epsilon_type object
  * - -- overload of the subtraction operator for form_factor and epsilon_type object
  * = -- overload of the assignment operator for form_factor and epsilon_type object
  * ** -- overload of the power operator for form_factor and epsilon_type object

USES

  * precision_golem (src/module/precision_golem.f90)
  * constante (src/module/constante.f90)

src/module/form_factor_type/assignment [ Generics ]

[ Top ] [ Generics ]

NAME

   ff = x -- Assignment to a form_factor

SYNOPSIS

   interface assignment(=)

NOTES

   In the assignment of a complex array the RHS must have the form
      (/ a, b, c /).
   In the assignment of a real array the RHS must have the form
      (/ real(a), aimag(a), real(b), aimag(b), real(c), aimag(c) /).
   The later form reflects the convention in the form factors of Golem90.

src/module/form_factor_type/division [ Generics ]

[ Top ] [ Generics ]

NAME

   ff / c -- Division of a form_factor by a scalar

SYNOPSIS

   interface operator(/)

src/module/form_factor_type/eps [ Types ]

[ Top ] [ Types ]

NAME

   eps -- singleton object of the epsilon-type.

SYNOPSIS

   !   type(epsilon_type), parameter :: eps

SOURCE

   type(epsilon_type), parameter :: eps = epsilon_type(1.0, 1)

EXAMPLE

   type(form_factor) :: ff1 = a20((/.../))
   type(form_factor) :: ff2 = eps * ff1

src/module/form_factor_type/epsilon_type [ Types ]

[ Top ] [ Types ]

NAME

   epsilon_type -- a type that represents positive
     powers of epsilon

SYNOPSIS

   !   type epsilon_type

SOURCE

   type epsilon_type
      complex(ki) :: coefficient
      integer :: power
   end type epsilon_type

src/module/form_factor_type/form_factor [ Types ]

[ Top ] [ Types ]

NAME

   form_factor -- represents the result of a form factor

SYNOPSIS

   !   type form_factor

SOURCE

   type form_factor
      complex(ki) :: a
      complex(ki) :: b
      complex(ki) :: c
   end type form_factor

NOTES

   * a is the coefficient of the 1/epsilon^2 pole
   * b is the coefficient of the 1/epsilon pole
   * c is the coefficient of the finite term

src/module/form_factor_type/multiplication [ Generics ]

[ Top ] [ Generics ]

NAME

   c * ff -- Multiplication of a form_factor with a scalar

SYNOPSIS

   interface operator(*)

src/module/form_factor_type/subtraction [ Generics ]

[ Top ] [ Generics ]

NAME

   ff - x, - ff -- Subtractions involving form_factor(s)

SYNOPSIS

   interface operator(-)

src/module/form_factor_type/sum [ Generics ]

[ Top ] [ Generics ]

NAME

   ff + x, + ff -- Sums involving form_factor(s)

SYNOPSIS

   interface operator(+)