Graph Framework
Loading...
Searching...
No Matches
graph_fortran_binding.f90 File Reference

Implimentation of the Fortran binding library. More...

Data Types

type  graph_fortran::graph_context
 Class object for the binding. More...
 
interface  graph_fortran::graph_float_context
 Interface for the graph_context constructor with float type. More...
 
interface  graph_fortran::graph_double_context
 Interface for the graph_context constructor with double type. More...
 
interface  graph_fortran::graph_complex_float_context
 Interface for the graph_context constructor with complex float type. More...
 
interface  graph_fortran::graph_complex_double_context
 Interface for the graph_context constructor with complex double type. More...
 
interface  graph_fortran::objc_autoreleasepoolpush
 Auto release pool push interface. More...
 
interface  graph_fortran::objc_autoreleasepoolpop
 Auto release pool pop interface. More...
 
interface  graph_fortran::graph_construct_context
 Construct a C context. More...
 
interface  graph_fortran::graph_destroy_context
 Destroy C context. More...
 
interface  graph_fortran::graph_variable
 Create a variable node. More...
 
interface  graph_fortran::graph_constant
 Create a constant node. More...
 
interface  graph_fortran::graph_set_variable
 Set a variable value. More...
 
interface  graph_fortran::graph_constant_c
 Create a constant node with complex values. More...
 
interface  graph_fortran::graph_pseudo_variable
 Create a pseudo variable node. More...
 
interface  graph_fortran::graph_remove_pseudo
 Remove pseudo. More...
 
interface  graph_fortran::graph_add
 Create Addition node. More...
 
interface  graph_fortran::graph_sub
 Create Substract node. More...
 
interface  graph_fortran::graph_mul
 Create Multiply node. More...
 
interface  graph_fortran::graph_div
 Create Divide node. More...
 
interface  graph_fortran::graph_sqrt
 Create Sqrt node. More...
 
interface  graph_fortran::graph_exp
 Create Exp node. More...
 
interface  graph_fortran::graph_log
 Create Log node. More...
 
interface  graph_fortran::graph_pow
 Create pow node. More...
 
interface  graph_fortran::graph_erfi
 Create Erfi node. More...
 
interface  graph_fortran::graph_sin
 Create Sine node. More...
 
interface  graph_fortran::graph_cos
 Create Cosine node. More...
 
interface  graph_fortran::graph_atan
 Create atan node. More...
 
interface  graph_fortran::graph_random_state
 Construct a random state node. More...
 
interface  graph_fortran::graph_random
 Create Random node. More...
 
interface  graph_fortran::graph_piecewise_1d
 Create 1D piecewise node with complex double buffer. More...
 
interface  graph_fortran::graph_piecewise_2d
 Create 2D piecewise node. More...
 
interface  graph_fortran::graph_get_max_concurrency
 Get the maximum number of concurrent devices. More...
 
interface  graph_fortran::graph_set_device_number
 Choose the device number. More...
 
interface  graph_fortran::graph_add_pre_item
 Add pre workflow item. More...
 
interface  graph_fortran::graph_add_item
 Add workflow item. More...
 
interface  graph_fortran::graph_add_converge_item
 Add workflow converge item. More...
 
interface  graph_fortran::graph_compile
 Compile the work items. More...
 
interface  graph_fortran::graph_pre_run
 Run pre work items. More...
 
interface  graph_fortran::graph_run
 Run work items. More...
 
interface  graph_fortran::graph_wait
 Wait for work items to complete. More...
 
interface  graph_fortran::graph_df
 Take derivative ∂f∂x. More...
 
interface  graph_fortran::graph_copy_to_device
 Copy data to a device buffer. More...
 
interface  graph_fortran::graph_copy_to_host
 Copy data to a host buffer. More...
 
interface  graph_fortran::graph_print
 Print a value from nodes. More...
 

Modules

module  graph_fortran
 Module contains subroutines for calling this from fortran.
 

Enumerations

enum  { float_t , double_t , complex_float_t , complex_double_t }
 

Functions/Subroutines

integer(c_intptr_t) function graph_fortran::graph_ptr (node)
 Convert a node to the pointer value.
 
class(graph_context) function, pointer graph_fortran::graph_construct_float (use_safe_math)
 Construct a graph_context object with float type.
 
class(graph_context) function, pointer graph_fortran::graph_construct_double (use_safe_math)
 Construct a graph_context object with double type.
 
class(graph_context) function, pointer graph_fortran::graph_construct_complex_float (use_safe_math)
 Construct a graph_context object with complex float type.
 
class(graph_context) function, pointer graph_fortran::graph_construct_complex_double (use_safe_math)
 Construct a graph_context object with complex double type.
 
subroutine graph_fortran::graph_destruct (this)
 Deconstruct a graph_context object.
 
type(c_ptr) function graph_fortran::graph_context_variable (this, size, symbol)
 Create variable node.
 
type(c_ptr) function graph_fortran::graph_context_constant_real (this, value)
 Create a constant node.
 
subroutine graph_fortran::graph_context_set_variable_float (this, var, value)
 Set the value of a variable float types.
 
subroutine graph_fortran::graph_context_set_variable_double (this, var, value)
 Set the value of a variable double types.
 
subroutine graph_fortran::graph_context_set_variable_cfloat (this, var, value)
 Set the value of a variable complex float types.
 
subroutine graph_fortran::graph_context_set_variable_cdouble (this, var, value)
 Set the value of a variable complex double types.
 
function graph_fortran::graph_context_constant_complex (this, real_value, img_valu
 Create constant node with complex values.
 
function graph_fortran::graph_context_pseudo_variable (this, var)
 Create pseudo variable node.
 
type(c_ptr) function graph_fortran::graph_context_remove_pseudo (this, var)
 Remove pseudo.
 
type(c_ptr) function graph_fortran::graph_context_add (this, left, right)
 Create Addition node.
 
type(c_ptr) function graph_fortran::graph_context_sub (this, left, right)
 Create Subtract node.
 
type(c_ptr) function graph_fortran::graph_context_mul (this, left, right)
 Create Multiply node.
 
type(c_ptr) function graph_fortran::graph_context_div (this, left, right)
 Create Divide node.
 
type(c_ptr) function graph_fortran::graph_context_sqrt (this, arg)
 Create Sqrt node.
 
type(c_ptr) function graph_fortran::graph_context_exp (this, arg)
 Create Exp node.
 
type(c_ptr) function graph_fortran::graph_context_log (this, arg)
 Create Log node.
 
type(c_ptr) function graph_fortran::graph_context_pow (this, left, right)
 Create Pow node.
 
type(c_ptr) function graph_fortran::graph_context_erfi (this, arg)
 Create erfi node.
 
type(c_ptr) function graph_fortran::graph_context_sin (this, arg)
 Create Sine node.
 
type(c_ptr) function graph_fortran::graph_context_cos (this, arg)
 Create Cosine node.
 
type(c_ptr) function graph_fortran::graph_context_atan (this, left, right)
 Create atan node.
 
type(c_ptr) function graph_fortran::graph_context_random_state (this, seed)
 Get random size.
 
type(c_ptr) function graph_fortran::graph_context_random (this, state)
 Create random node.
 
function graph_fortran::graph_context_piecewise_1d_float (this, arg, scale, offset
 Create 1D piecewise node with float buffer.
 
function graph_fortran::graph_context_piecewise_1d_double (this, arg, scale, offse
 Create 1D piecewise node with double buffer.
 
type(c_ptr) function graph_fortran::graph_context_piecewise_1d_cfloat (this, arg, scale, offse
 Create 1D piecewise node with complex float buffer.
 
type(c_ptr) function graph_fortran::graph_context_piecewise_1d_cdouble (this, arg, scale, offs
 Create 1D piecewise node with complex double buffer.
 
type(c_ptr) function graph_fortran::graph_context_piecewise_2d_float (this,
 Create 2D piecewise node with float buffer.
 
type(c_ptr) function graph_fortran::graph_context_piecewise_2d_double (this,
 Create 2D piecewise node with double buffer.
 
type(c_ptr) function graph_fortran::graph_context_piecewise_2d_cfloat (this,
 Create 2D piecewise node with complex float buffer.
 
type(c_ptr) function graph_fortran::graph_context_piecewise_2d_cdouble (this,
 Create 2D piecewise node with complex double buffer.
 
function graph_fortran::graph_context_get_max_concurrency (this)
 Get the maximum number of concurrent devices.
 
subroutine graph_fortran::graph_context_set_device_number (this, num)
 Choose the device number.
 
subroutine graph_fortran::graph_context_add_pre_item (this, inputs, outputs,
 Add pre workflow item.
 
subroutine graph_fortran::graph_context_add_item (this, inputs, outputs,
 Add workflow item.
 
subroutine graph_fortran::graph_context_add_converge_item (this, inputs, outputs,
 Add workflow converge item.
 
subroutine graph_fortran::graph_context_compile (this)
 Compile the work items.
 
subroutine graph_fortran::graph_context_pre_run (this)
 Run pre work items.
 
subroutine graph_fortran::graph_context_run (this)
 Run work items.
 
subroutine graph_fortran::graph_context_wait (this)
 Wait for work items to complete.
 
type(c_ptr) function graph_fortran::graph_context_df (this, fnode, xnode)
 Take derivative ∂f∂x.
 
subroutine graph_fortran::graph_context_copy_to_device_float (this, node, source)
 Copy float data to a device buffer.
 
subroutine graph_fortran::graph_context_copy_to_device_double (this, node, source)
 Copy double data to a device buffer.
 
subroutine graph_fortran::graph_context_copy_to_device_cfloat (this, node, source)
 Copy complex float data to a device buffer.
 
subroutine graph_fortran::graph_context_copy_to_device_cdouble (this, node, source
 Copy complex double data to a device buffer.
 
subroutine graph_fortran::graph_context_copy_to_host_float (this, node, destinatio
 Copy data to a host float buffer.
 
subroutine graph_fortran::graph_context_copy_to_host_double (this, node, destinati
 Copy data to a host double buffer.
 
subroutine graph_fortran::graph_context_copy_to_host_cfloat (this, node, destinati
 Copy data to a host complex float buffer.
 
subroutine graph_fortran::graph_context_copy_to_host_cdouble (this, node, destinat
 Copy data to a host complex double buffer.
 
subroutine graph_fortran::graph_context_print (this, index, nodes)
 Print a value from nodes.
 

Variables

integer(c_intptr_t), dimension(0) graph_fortran::graph_null_array
 A null array for empty.
 

Detailed Description

Implimentation of the Fortran binding library.