/*
 *  topology-interface.sli
 *
 *  This file is part of NEST.
 *
 *  Copyright (C) 2004 The NEST Initiative
 *
 *  NEST is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  NEST is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with NEST.  If not, see <http://www.gnu.org/licenses/>.
 *
 */

/topology-interface /SLI ($Revision: 9954 $) provide-component

/topology namespace

% ------------------------------------------------------------------------------

/ConnectLayers [/integertype /integertype /dictionarytype]
  /ConnectLayers_i_i_D load
def

/CreateLayer [/dictionarytype]
  /CreateLayer_D load
def

/GetElement [/integertype /arraytype]
  /GetElement_i_ia load
def

/GetPosition [/integertype]
  /GetPosition_i load
def

/GetLayer [/integertype]
  { GetStatus /parent get } bind
def

/Displacement [/integertype /integertype]
  { exch GetPosition exch
    Displacement_a_i } bind
def

/Displacement [/arraytype /integertype]
  /Displacement_a_i load
def

/Displacement [/doublevectortype /integertype]
  { exch cva exch
    Displacement_a_i } bind
def

/Distance [/integertype /integertype]
  { exch GetPosition exch
    Distance_a_i } bind
def

/Distance [/arraytype /integertype]
  /Distance_a_i load
def

/Distance [/doublevectortype /integertype]
  { exch cva exch
    Distance_a_i } bind
def

/DumpLayerNodes [/ostreamtype /integertype]
  { DumpLayerNodes_os_i } bind
def

% /DumpLayerNodes_nowrite [/integertype]
%   { false DumpLayerNodes_os_i_b } bind
% def


/DumpLayerConnections [/ostreamtype /integertype /literaltype]
  /DumpLayerConnections_os_i_l load
def

/CreateMask [/dictionarytype]
  /CreateMask_D load
def

/Inside [/arraytype /masktype]
  /Inside_a_M load
def

/Inside [/arraytype /dictionarytype]
  { CreateMask Inside_M_a } bind
def

/and [/masktype /masktype]
  /and_M_M load
def

/or [/masktype /masktype]
  /or_M_M load
def

/sub [/masktype /masktype]
  /sub_M_M load
def

/mul [/parametertype /parametertype]
  /mul_P_P load
def

/div [/parametertype /parametertype]
  /div_P_P load
def

/add [/parametertype /parametertype]
  /add_P_P load
def

/sub [/parametertype /parametertype]
  /sub_P_P load
def

/GetGlobalChildren [/integertype /masktype /arraytype]
  /GetGlobalChildren_i_M_a load
def
  
/CreateParameter [/dictionarytype]
  /CreateParameter_D load
def

/CreateParameter [/doubletype]
  /CreateParameter_D load
def

/GetValue [/arraytype /parametertype]
  /GetValue_a_P load
def

/cvdict [/masktype]
  /cvdict_M load
def
  
/get [/masktype /literaltype] {exch cvdict_M exch get} def
/get [/masktype /arraytype] {exch cvdict_M exch get} def

% ------------------------------------------------------------------------------

end % namespace topology