Enhanced techno rule support. Inspector support bug fix.

* Bug: In Hurricane/Commons.h, modify the getRecord<>() templates so
    that for both vector<Element> and vector<Element*>, the individual
    record created for each element are donne with pointers. That is,
    for the vector<Element> case, we take a pointer.
      As a general policy, except for the POD types, always use pointers
    or references to data in the records/inspector. Never uses values
    that can call the copy constructor.
      Suppress INSPECTOR_PV_SUPPORT() macro, keep only
    INSPECTOR_PR_SUPPORT().
      Provide value support only for getString<>() template.
      This value & copy constructor problem was causing a crash when
    trying to inspect Hurricane::AnalogCellExtension.
* New: In Hurricane::Technology, change the API of the PhysicalRule,
    now we can only create/get PhysicalRule, but setting the value of
    the rule itself must be done on the rule.
      Enhance PhysicalRule to provide for stepped rules, non isotropic
    and ratio rules.
      Merge TwoLayersPhysicalrule in PhysicalRule, much simpler to
    suppress the management of derived classes. That means that we
    loose a little memory as some fields are mutually exclusive.
    Not a problem considering that there will not be so many of thoses
    objects.
* New: In CRL/helpers.analogtechno.py, enhanced DTR support for rules
    like:
      ('minSpacing'  , 'metal1', ((0.4,20.0), (0.8,1000.0)), Length, 'REF.1')
      ('minEnclosure', 'metal1', 'cut1', (0.2,0.3)         , Length, 'REF.2')
      ('minDensity'  , 'metal1', 0.30                      , Unit  , 'REF.3')
      The DTR parser has been updated, but not the oroshi.dtr Rule
    cache for analog components. Given a rule name, the value used
    will be the horizontal one of the first step.
* Change: In hurricane/doc/hurricane, re-generate the documentation
    with updated support for Technology & PhysicalRule.
This commit is contained in:
Jean-Paul Chaput 2020-07-21 11:22:04 +02:00
parent 34c1795630
commit 17ecfd823b
549 changed files with 3675 additions and 12492 deletions

View File

@ -14,9 +14,7 @@
// +-----------------------------------------------------------------+
#ifndef ANABATIC_CHIP_TOOLS_H
#define ANABATIC_CHIP_TOOLS_H
#pragma once
#include <string>
#include "hurricane/DbU.h"
#include "hurricane/Torus.h"
@ -113,6 +111,4 @@ namespace Anabatic {
} // Anabatic namespace.
INSPECTOR_PV_SUPPORT(Anabatic::ChipTools);
#endif // ANABATIC_CHIP_TOOLS_H
INSPECTOR_PR_SUPPORT(Anabatic::ChipTools);

View File

@ -14,9 +14,7 @@
// +-----------------------------------------------------------------+
#ifndef ANABATIC_CONSTANTS_H
#define ANABATIC_CONSTANTS_H
#pragma once
#include "hurricane/Flags.h"
namespace Anabatic {
@ -148,6 +146,4 @@ namespace Anabatic {
} // Anabatic namespace.
INSPECTOR_PV_SUPPORT(Anabatic::Flags)
#endif // ANABATIC_CONSTANTS_H
INSPECTOR_PR_SUPPORT(Anabatic::Flags);

View File

@ -14,9 +14,7 @@
// +-----------------------------------------------------------------+
#ifndef ANABATIC_DIJKSTRA_H
#define ANABATIC_DIJKSTRA_H
#pragma once
#include <set>
#include <iomanip>
#include "hurricane/Observer.h"
@ -593,6 +591,4 @@ namespace Anabatic {
GETSTRING_POINTER_SUPPORT(Anabatic::Vertex);
IOSTREAM_POINTER_SUPPORT(Anabatic::Vertex);
INSPECTOR_PV_SUPPORT(Anabatic::Dijkstra::Mode);
#endif // ANABATIC_DIJKSTRA_H
INSPECTOR_PR_SUPPORT(Anabatic::Dijkstra::Mode);

View File

@ -14,6 +14,7 @@
# +-----------------------------------------------------------------+
from __future__ import print_function
import os
import os.path
import sys
@ -39,22 +40,38 @@ def valueToDbU ( value, unit, lengthType ):
return area
def isStepped ( entry ):
if isinstance(entry,tuple):
for item in entry:
if not isinstance(item,tuple) or len(item) != 2:
return False
return True
return False
def isNonIsotropic ( entry ):
if not isinstance(entry,tuple) or len(entry) != 2: return False
if not isinstance(entry[0],int) and not isinstance(entry[0],float): return False
if not isinstance(entry[1],int) and not isinstance(entry[1],float): return False
return True
def checkEntry ( entry, entryNo ):
if not isinstance(entry,tuple):
raise ErrorMessage( 1, [ 'Entry %d is malformed in <analogTechnologyTable>.' % entryNo
, 'Not a tuple (a, b, c, ...) or (a,).'
, str(entry)
] )
raise ErrorMessage( 1, [ 'Entry %d is malformed in <analogTechnologyTable>.' % entryNo
, 'Not a tuple (a, b, c, ...) or (a,).'
, str(entry)
] )
if not len(entry) in (4, 5, 6):
raise ErrorMessage( 1, [ 'Entry %d is malformed in <analogTechnologyTable>.' % entryNo
, 'Tuple must have *4*, *5* or *6* items only.'
, str(entry)
] )
raise ErrorMessage( 1, [ 'Entry %d is malformed in <analogTechnologyTable>.' % entryNo
, 'Tuple must have *4*, *5* or *6* items only.'
, str(entry)
] )
if not entry[-2] in (Length, Length|Asymmetric, Area, Unit):
raise ErrorMessage( 1, [ 'Entry %d is malformed in <analogTechnologyTable>.' % entryNo
, 'Beforelast item is neither Length, Length|Asymmetric nor Area.'
, str(entry)
] )
raise ErrorMessage( 1, [ 'Entry %d is malformed in <analogTechnologyTable>.' % entryNo
, 'Beforelast item is neither Length, Length|Asymmetric nor Area.'
, str(entry)
] )
return
@ -62,49 +79,57 @@ def _loadAnalogTechno ( techno, ruleTable ):
unit = None
entryNo = 0
for entry in ruleTable:
entryNo += 1
entryNo += 1
try:
if entryNo > 1:
checkEntry( entry, entryNo )
try:
if entryNo > 1: checkEntry( entry, entryNo )
if entry[0] == 'Header':
unit = entry[2]
techno.setName( entry[1] )
continue
if entry[0] == 'Header':
unit = entry[2]
techno.setName( entry[1] )
continue
# Zero-layer rule.
if len(entry) == 4:
if entry[2] & Unit:
techno.addUnitRule( entry[0], entry[1], entry[3] )
else:
techno.addPhysicalRule( entry[0]
, valueToDbU( entry[1], unit, entry[2] )
, entry[3]
)
# One-layer rule.
if len(entry) == 5:
techno.addPhysicalRule( entry[0]
, entry[1]
, valueToDbU( entry[2], unit, entry[3] )
, entry[4]
)
# Two-layer rule.
if len(entry) == 6:
symmetric = True
if entry[4] & Asymmetric: symmetric = False
# Zero-layer rule.
if len(entry) == 4:
if entry[2] & Unit:
rule = techno.addUnitRule( entry[0], entry[3] )
rule.addValue( entry[1] )
else:
rule = techno.addPhysicalRule( entry[0], entry[3] )
rule.addValue( valueToDbU(entry[1], unit, entry[2]), 0 )
# One-layer rule.
if len(entry) == 5:
rule = techno.addPhysicalRule( entry[0], entry[1], entry[4] )
if entry[3] & Unit:
rule.addValue( entry[2] )
else:
if isStepped(entry[2]):
for step in entry[2]:
rule.addValue( valueToDbU(step[0], unit, entry[3])
, valueToDbU(step[1], unit, entry[3]) )
elif isNonIsotropic(entry[2]):
rule.addValue( valueToDbU(entry[2][0], unit, entry[3])
, valueToDbU(entry[2][1], unit, entry[3])
, 0 )
else:
rule.addValue( valueToDbU(entry[2], unit, entry[3]), 0 )
# Two-layer rule.
if len(entry) == 6:
symmetric = True
if entry[4] & Asymmetric: symmetric = False
rule = techno.addPhysicalRule( entry[0], entry[1], entry[2], entry[5] )
rule.setSymmetric( symmetric )
techno.addPhysicalRule( entry[0]
, entry[1]
, entry[2]
, symmetric
, valueToDbU( entry[3], unit, entry[4] )
, entry[5]
)
except Exception, e:
e = ErrorMessage( e )
e.addMessage( 'In %s:<analogTechnologyTable> at index %d.' % (technoFile,entryNo) )
print e
if isNonIsotropic(entry[3]):
rule.addValue( valueToDbU(entry[3][0], unit, entry[4])
, valueToDbU(entry[3][1], unit, entry[4])
, 0 )
else:
rule.addValue( valueToDbU(entry[3], unit, entry[4]), 0 )
except Exception, e:
e = ErrorMessage( 1, e )
e.addMessage( 'In {}:<analogTechnologyTable> at index {}.'.format(technoFile,entryNo) )
print( str(e) )
return

View File

@ -13,54 +13,55 @@
# | Python : "./crlcore/helpers/io.py" |
# +-----------------------------------------------------------------+
from __future__ import print_function
import sys
import os
import os.path
import re
import traceback
try:
from PyQt4.QtCore import Qt
from PyQt4.QtGui import QSizePolicy
from PyQt4.QtGui import QDialog
from PyQt4.QtGui import QPalette
from PyQt4.QtGui import QColor
from PyQt4.QtGui import QFont
from PyQt4.QtGui import QFontMetrics
from PyQt4.QtGui import QWidget
from PyQt4.QtGui import QFrame
from PyQt4.QtGui import QLabel
from PyQt4.QtGui import QPixmap
from PyQt4.QtGui import QPushButton
from PyQt4.QtGui import QTextEdit
from PyQt4.QtGui import QVBoxLayout
from PyQt4.QtGui import QHBoxLayout
from PyQt4.QtGui import QAction
from PyQt4.QtGui import QKeySequence
from PyQt4.QtCore import Qt
from PyQt4.QtGui import QSizePolicy
from PyQt4.QtGui import QDialog
from PyQt4.QtGui import QPalette
from PyQt4.QtGui import QColor
from PyQt4.QtGui import QFont
from PyQt4.QtGui import QFontMetrics
from PyQt4.QtGui import QWidget
from PyQt4.QtGui import QFrame
from PyQt4.QtGui import QLabel
from PyQt4.QtGui import QPixmap
from PyQt4.QtGui import QPushButton
from PyQt4.QtGui import QTextEdit
from PyQt4.QtGui import QVBoxLayout
from PyQt4.QtGui import QHBoxLayout
from PyQt4.QtGui import QAction
from PyQt4.QtGui import QKeySequence
except Exception, e:
try:
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QSizePolicy
from PyQt5.QtWidgets import QDialog
from PyQt5.QtGui import QPalette
from PyQt5.QtGui import QColor
from PyQt5.QtGui import QFont
from PyQt5.QtGui import QFontMetrics
from PyQt5.QtWidgets import QWidget
from PyQt5.QtWidgets import QFrame
from PyQt5.QtWidgets import QLabel
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QPushButton
from PyQt5.QtWidgets import QTextEdit
from PyQt5.QtWidgets import QVBoxLayout
from PyQt5.QtWidgets import QHBoxLayout
from PyQt5.QtWidgets import QAction
from PyQt5.QtGui import QKeySequence
except e:
print '[ERROR] helpers.io, neither PyQt4 nor PyQt5 is available.'
sys.exit( 1 )
try:
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QSizePolicy
from PyQt5.QtWidgets import QDialog
from PyQt5.QtGui import QPalette
from PyQt5.QtGui import QColor
from PyQt5.QtGui import QFont
from PyQt5.QtGui import QFontMetrics
from PyQt5.QtWidgets import QWidget
from PyQt5.QtWidgets import QFrame
from PyQt5.QtWidgets import QLabel
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QPushButton
from PyQt5.QtWidgets import QTextEdit
from PyQt5.QtWidgets import QVBoxLayout
from PyQt5.QtWidgets import QHBoxLayout
from PyQt5.QtWidgets import QAction
from PyQt5.QtGui import QKeySequence
except e:
print( '[ERROR] helpers.io, neither PyQt4 nor PyQt5 is available.' )
sys.exit( 1 )
import Cfg
import helpers
from Hurricane import UpdateSession
from Hurricane import UpdateSession
import Viewer
@ -69,91 +70,91 @@ import Viewer
class ErrorWidget ( QDialog ):
def __init__ ( self, e ):
QWidget.__init__ ( self, None )
def __init__ ( self, e ):
QWidget.__init__ ( self, None )
self.setWindowTitle( 'Error' )
self.setWindowTitle( 'Error' )
message = QLabel( e.getLinesAsString() )
message.setAlignment( Qt.AlignLeft )
message.setFont( QFont('Courier',10,QFont.Bold) )
message = QLabel( e.getLinesAsString() )
message.setAlignment( Qt.AlignLeft )
message.setFont( QFont('Courier',10,QFont.Bold) )
error = QLabel( '[ERROR]' )
error.setAlignment( Qt.AlignLeft )
font = error.font()
font.setWeight( QFont.Bold )
error.setFont( font )
error = QLabel( '[ERROR]' )
error.setAlignment( Qt.AlignLeft )
font = error.font()
font.setWeight( QFont.Bold )
error.setFont( font )
self._tryCont = QPushButton()
self._tryCont.setSizePolicy( QSizePolicy.Fixed, QSizePolicy.Fixed )
self._tryCont.setText ( 'Try to continue' )
self._abort = QPushButton()
self._abort.setSizePolicy( QSizePolicy.Fixed, QSizePolicy.Fixed )
self._abort.setText ( 'Abort' )
self._abort.setDefault ( True )
self._tryCont = QPushButton()
self._tryCont.setSizePolicy( QSizePolicy.Fixed, QSizePolicy.Fixed )
self._tryCont.setText ( 'Try to continue' )
self._abort = QPushButton()
self._abort.setSizePolicy( QSizePolicy.Fixed, QSizePolicy.Fixed )
self._abort.setText ( 'Abort' )
self._abort.setDefault ( True )
traceFont = QFont('Courier',10,QFont.Normal)
lineHeight = QFontMetrics( traceFont ).height()
traceText = helpers.textStackTrace( e.trace, False, e.scriptPath )
lineCount = traceText.count( '\n' ) + 2
minimumWidth = 400
if Viewer.Graphics.isHighDpi(): minimumWidth = 2100
self._trace = QTextEdit()
self._trace.setReadOnly ( True );
self._trace.setLineWrapMode( QTextEdit.NoWrap );
self._trace.setMinimumSize ( minimumWidth, lineCount*lineHeight );
self._trace.setFont ( traceFont )
self._trace.setText ( traceText )
traceFont = QFont('Courier',10,QFont.Normal)
lineHeight = QFontMetrics( traceFont ).height()
traceText = helpers.textStackTrace( e.trace, False, e.scriptPath )
lineCount = traceText.count( '\n' ) + 2
minimumWidth = 400
if Viewer.Graphics.isHighDpi(): minimumWidth = 2100
self._trace = QTextEdit()
self._trace.setReadOnly ( True );
self._trace.setLineWrapMode( QTextEdit.NoWrap );
self._trace.setMinimumSize ( minimumWidth, lineCount*lineHeight );
self._trace.setFont ( traceFont )
self._trace.setText ( traceText )
buttonLayout = QHBoxLayout()
buttonLayout.addStretch( 1 )
buttonLayout.addWidget ( self._tryCont )
buttonLayout.addStretch( 1 )
buttonLayout.addWidget ( self._abort )
buttonLayout.addStretch( 1 )
buttonLayout = QHBoxLayout()
buttonLayout.addStretch( 1 )
buttonLayout.addWidget ( self._tryCont )
buttonLayout.addStretch( 1 )
buttonLayout.addWidget ( self._abort )
buttonLayout.addStretch( 1 )
vLayout = QVBoxLayout()
vLayout.addWidget ( error )
vLayout.addStretch( 1 )
vLayout.addWidget ( message )
vLayout.addStretch( 1 )
vLayout.addWidget ( self._trace )
vLayout.addStretch( 1 )
vLayout.addLayout ( buttonLayout )
vLayout = QVBoxLayout()
vLayout.addWidget ( error )
vLayout.addStretch( 1 )
vLayout.addWidget ( message )
vLayout.addStretch( 1 )
vLayout.addWidget ( self._trace )
vLayout.addStretch( 1 )
vLayout.addLayout ( buttonLayout )
pixmapWidth = 150
if not Viewer.Graphics.isHighDpi(): pixmapWidth = 70
pixmap = QPixmap( ':/images/angry-birds-red.png' )
pixmap = pixmap.scaledToWidth( pixmapWidth )
icon = QLabel()
icon.setPixmap( pixmap )
pixmapWidth = 150
if not Viewer.Graphics.isHighDpi(): pixmapWidth = 70
pixmap = QPixmap( ':/images/angry-birds-red.png' )
pixmap = pixmap.scaledToWidth( pixmapWidth )
icon = QLabel()
icon.setPixmap( pixmap )
hLayout = QHBoxLayout()
hLayout.addWidget( icon )
hLayout.addLayout( vLayout )
self.setLayout( hLayout )
hLayout = QHBoxLayout()
hLayout.addWidget( icon )
hLayout.addLayout( vLayout )
self.setLayout( hLayout )
self._tryCont.clicked.connect( self.accept )
self._abort .clicked.connect( self.reject )
self._tryCont.clicked.connect( self.accept )
self._abort .clicked.connect( self.reject )
self._exitAction = QAction( '&Exit', self )
self._exitAction.setStatusTip( 'Exit Coriolis' )
self._exitAction.setShortcut ( QKeySequence('CTRL+Q') )
self._exitAction.triggered.connect( self.reject )
self.addAction( self._exitAction )
self._exitAction = QAction( '&Exit', self )
self._exitAction.setStatusTip( 'Exit Coriolis' )
self._exitAction.setShortcut ( QKeySequence('CTRL+Q') )
self._exitAction.triggered.connect( self.reject )
self.addAction( self._exitAction )
self._closeAction = QAction( '&Close', self )
self._closeAction.setStatusTip( 'Try to continue' )
self._closeAction.setShortcut ( QKeySequence('CTRL+W') )
self._closeAction.triggered.connect( self.reject )
self.addAction( self._closeAction )
self._closeAction = QAction( '&Close', self )
self._closeAction.setStatusTip( 'Try to continue' )
self._closeAction.setShortcut ( QKeySequence('CTRL+W') )
self._closeAction.triggered.connect( self.reject )
self.addAction( self._closeAction )
return
return
def closeEvent ( self, event ):
self.setResult( QDialog.Rejected )
event.accept()
return
def closeEvent ( self, event ):
self.setResult( QDialog.Rejected )
event.accept()
return
# -------------------------------------------------------------------
@ -164,79 +165,81 @@ class ErrorMessage ( Exception ):
def __init__ ( self, code, *arguments ):
self.scriptPath = None
self.trace = traceback.extract_stack()
self._code = code
self._errors = [ 'Malformed call to ErrorMessage()'
, '%s' % str(arguments) ]
self.code = code
self.errors = [ 'Malformed call to ErrorMessage().'
, 'args:"{}"'.format(arguments) ]
if not isinstance(self.code,int):
self.errors = [ 'Malformed call to ErrorMessage(), first argument (code) must be an integer.'
, 'code:"{}"'.format(code)
, 'args:"{}"'.format(arguments) ]
return
text = None
if len(arguments) == 1:
if isinstance(arguments[0],Exception): text = str(arguments[0]).split('\n')
else:
self._errors = arguments[0]
if isinstance(arguments[0],Exception): text = str(arguments[0]).split('\n')
else:
self.errors = arguments[0]
elif len(arguments) > 1:
sys.stdout.flush()
text = list(arguments)
sys.stdout.flush()
text = list(arguments)
if text:
self._errors = []
while len(text[0]) == 0: del text[0]
self.errors = []
while len(text[0]) == 0: del text[0]
lstrip = 0
if text[0].startswith('[ERROR]'): lstrip = 8
lstrip = 0
if text[0].startswith('[ERROR]'): lstrip = 8
for line in text:
if line[0:lstrip] == ' '*lstrip or \
line[0:lstrip-1] == '[ERROR]':
self._errors += [ line[lstrip:] ]
else:
self._errors += [ line.lstrip() ]
sys.stdout.flush()
for line in text:
if line[0:lstrip] == ' '*lstrip or \
line[0:lstrip-1] == '[ERROR]':
self.errors += [ line[lstrip:] ]
else:
self.errors += [ line.lstrip() ]
sys.stdout.flush()
return
def __str__ ( self ):
if not isinstance(self._errors,list):
return "[ERROR] %s" % self._errors
if not isinstance(self.errors,list):
return "[ERROR] %s" % self.errors
formatted = "\n"
for i in range(len(self._errors)):
if i == 0: formatted += "[ERROR] %s" % self._errors[i]
else: formatted += " %s" % self._errors[i]
if i+1 < len(self._errors): formatted += "\n"
for i in range(len(self.errors)):
if i == 0: formatted += "[ERROR] %s" % self.errors[i]
else: formatted += " %s" % self.errors[i]
if i+1 < len(self.errors): formatted += "\n"
return formatted
def getLinesAsString ( self ):
if not isinstance(self._errors,list): return self._errors
if not isinstance(self.errors,list): return self.errors
lines = ''
for line in self._errors: lines += line + '\n'
for line in self.errors: lines += line + '\n'
return lines
def addMessage ( self, message ):
if not isinstance(self._errors,list):
self._errors = [ self._errors ]
if not isinstance(self.errors,list):
self.errors = [ self.errors ]
if isinstance(message,list):
for line in message:
self._errors += [ line ]
self.errors += [ line ]
else:
self._errors += [ message ]
self.errors += [ message ]
return
def terminate ( self ):
print self
sys.exit( self._code )
def _getCode ( self ): return self._code
code = property(_getCode)
print( self )
sys.exit( self.code )
@staticmethod
def show ( code, *arguments ):
e = ErrorMessage( code, *arguments )
if Viewer.Graphics.get().isEnabled():
tryCont = ErrorWidget( e ).exec_()
if not tryCont: raise e
tryCont = ErrorWidget( e ).exec_()
if not tryCont: raise e
else:
raise e
raise e
return
@ -254,8 +257,8 @@ def catch ( errorObject ):
em.trace = traceback.extract_tb( sys.exc_info()[2] )
#em.scriptPath = __file__
print em
print helpers.textStackTrace( em.trace, True, em.scriptPath )
print( em )
print( helpers.textStackTrace( em.trace, True, em.scriptPath ) )
if Viewer.Graphics.get().isEnabled():
tryCont = ErrorWidget( em ).exec_()
@ -298,5 +301,5 @@ def isVL ( level ):
def vprint ( level, message ):
if isVL(level): print message
if isVL(level): print( message )
return

View File

@ -149,7 +149,7 @@ namespace CRL {
string AllianceFrameworkProperty::JsonProperty::getTypeName () const
{ return getString(AllianceFrameworkProperty::getPropertyName()); }
{ return "CRL::AllianceFrameworkProperty"; }
void AllianceFrameworkProperty::JsonProperty::initialize ()

View File

@ -112,7 +112,7 @@ namespace CRL {
INSPECTOR_P_SUPPORT(CRL::SearchPath);
INSPECTOR_V_SUPPORT(CRL::SearchPath::Element);
INSPECTOR_PR_SUPPORT(CRL::SearchPath::Element);
#endif // CRL_SEARCH_PATH_H

View File

@ -74,7 +74,7 @@ A yellow dashed arrow denotes a relation between a template instance and the tem
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -92,7 +92,7 @@ Open questions</h2>
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -34,7 +34,7 @@
\vspace*{1cm}
{\large Generated by Doxygen 1.8.14}\\
\vspace*{0.5cm}
{\small Mon Apr 27 2020 11:34:57}\\
{\small Tue Jul 21 2020 11:06:16}\\
\end{center}
\end{titlepage}

View File

@ -0,0 +1,84 @@
// -*- C++ -*-
namespace Hurricane {
//! \class PhysicalRule
//! \brief Define a rule for the technology (\b API).
//!
//! \section sPhysicalRuleIntro Introduction
//!
//! The constructor of Physical rule is not directly accessible,
//! as thoses objects must be created only through the
//! Technology class \c API (to be stored in the relevant
//! tables).
//!
//! PhysicalRule is a <em>"one size fit class"</em>. As there will
//! be only a small number of objects created (compare to other
//! kinds) we choose to implement all variant in one class instead
//! of creating a flock of derived classes and all the assorted
//! paraphernalia. As a consequence, not all fields will be used
//! at the same time, they are mutually exclusive.
//! \function bool PhysicalRule::isSymmetric () const;
//! Tells if the rule is symmetric.
//! \function bool PhysicalRule::isDbU () const;
//! Tells if the rule uses physical lengths, with multiple steps
//! or not.
//! \function bool PhysicalRule::isDouble () const;
//! Tells if the rule describe non-length values (Volts, Ohms, Henry,
//! Celsius, ...).
//! \function bool PhysicalRule::hasSteps () const;
//! Tells if the rule has more than one step, that is, is not uniform
//! for all length.
//! \function void PhysicalRule::setSymmetric ( bool state );
//! Set the symmetric state of the rule. This used only for rules
//! bound to two layers.
//! \function void PhysicalRule::addValue ( double value );
//! Set the \c double value of a rule.
//! \function double PhysicalRule::getDoubleValue () const;
//! \return The \c double value of the rule.
//! \function double PhysicalRule::getValue ( DbU::Unit length=0, bool hDir=true ) const;
//! \param length The length for which we want the rule's value.
//! \param hDir In case of non-isotropic rule, which dimension
//! do we want.
//! \return The rule's value for the given length. If no parameter is supplied,
//! then, the X value of the first step is returned.
//! \function void PhysicalRule::addValue ( DbU::Unit value, DbU::Unit maxLength );
//! \param value The \e value of the step to add.
//! \param maxLength The length up to which the rule is valid.
//! passing zero as this argument means always valid.
//!
//! Adds a new stepping value to the rule. If the rules never
//! change, give a \c maxLength of zero and only call this function
//! once on the rule. The rule is isotropic in X and Y.
//!
//! This function can be called multiple time on a rule, each call
//! will add a new step. Steps are defined and ordered according to
//! \c maxLength.
//! \function void PhysicalRule::addValue ( DbU::Unit hvalue, DbU::Unit vvalue, DbU::Unit maxLength );
//! \param hvalue The horizontal \e value of the step to add.
//! \param vvalue The vertical \e value of the step to add.
//! \param maxLength The length up to which the rule is valid.
//! passing zero as this argument means always valid.
//!
//! Adds a new stepping value to the rule. If the rules never
//! change, give a \c maxLength of zero and only call this function
//! once on the rule. The rule is \b not isotropic, it defines a
//! different value for X and Y.
//!
//! This function can be called multiple time on a rule, each call
//! will add a new step. Steps are defined and ordered according to
//! \c maxLength.
}

View File

@ -610,6 +610,16 @@
margin-right: 5%
}
div.fragment a.code:link,
div.fragment a.code:visited,
div.fragment a.codeRef:link,
div.fragment a.codeRef:visited {
text-decoration: none;
font-weight: bold;
color: black;
border: none;
}
div.line {
white-space: pre;
padding: 0pt;

View File

@ -10,20 +10,73 @@
* \section sTechnologyIntro Introduction
*
* The Technology object provides the description of all the technology
* rules needed by the tools, currently it is limited to the description
* of all layers available. This object must be created once within the
* rules needed by the tools, currently it contains:
*
* - The layers, roughly from bottom (i.e. closest to the subtsrate)
* to top. Layers can be basic, that is, match a real physical layer,
* or composite, like for VIAs in symbolic for macro-generation.
* It also provides a connexity table between layers.
* - Three sets of rules describing the technology rules (formerly the
* \c DTR in Alliance).
* -# <tt>Zero Layer</tt>: rules not associated to any layer.
* -# <tt>One Layer</tt>: rules associated to one layer.
* -# <tt>Two Layers</tt>: rules associated to two layer.
*
* This object must be created once within the
* DataBase, and, in principle never destroyed (this would destroy layers
* and all objects laying on them ...).
*
* Here
*
* \remark There is only one technology for the current DataBase, and only one
* Database object, so only one technology defined.
*
* \section sTechnologyRules Using PhysicalRules
*
* How to create a simple one layer rule, setup the minimal width
* of \c metal1 layer to 0.5&micro;m.
*
\code
tech = DataBase::getDB()->getTechnology();
PhysicalRule* rule = tech->addPhysicalRule( "minWidth", "metal1" );
rule->addValue( DbU::fromPhysical( 0.5, DbU::UnitPower::Micro ), 0 );
\endcode
*
* How to create a one layer rule, with multiple steps.
* The minimal spacing of \c metal1 layer which will depend
* on the wire length. The spacing will be of 2&micro;m for length
* below 50&micro;m and 4&micro;m above.
*
\code
tech = DataBase::getDB()->getTechnology();
PhysicalRule* rule = tech->addPhysicalRule( "minWidth", "metal1" );
rule->addValue( DbU::fromPhysical( 2.0, DbU::UnitPower::Micro )
, DbU::fromPhysical( 50.0, DbU::UnitPower::Micro ) );
rule->addValue( DbU::fromPhysical( 4.0, DbU::UnitPower::Micro )
, DbU::fromPhysical( 1000.0, DbU::UnitPower::Micro ) );
\endcode
*
* How to create a two layers rule, with non-isomorphic values.
* The minimum enclosure of \c metal1 layer over \c cut1 will be
* 1&micro;m in horizontal direction and 0.5&micro;m in vertical.
* The order of layers is significant in the function call, it
* must be read as <em>"The encolusre of metal1 over cut1"</em>.
*
\code
tech = DataBase::getDB()->getTechnology();
PhysicalRule* rule = tech->addPhysicalRule( "minWidth", "metal1", "cut1" );
rule->addValue( DbU::fromPhysical( 1.0, DbU::UnitPower::Micro )
, DbU::fromPhysical( 0.5, DbU::UnitPower::Micro )
, 0 );
\endcode
*/
*/
/*! \function Technology* Technology::create ( DataBase* dataBase, const Name& name );
* \Return a newly created technology named \c \<name\> for the data base \c \<dataBase\>.
*
* \caution Throws an exception if the \c dataBase is \NULL, if the name is empty or if
* \warning Throws an exception if the \c dataBase is \NULL, if the name is empty or if
* the \c dataBase has already a technology.
*/
@ -142,4 +195,73 @@
* Returns \true on success (the layer exists).
*/
//! \function PhysicalRule* Technology::getUnitRule ( std::string ruleName ) const;
//! \param ruleName The name of the rule
//!
//! \Return The matching rule in the table of <b>unit</b> rules.
//! \function PhysicalRule* Technology::getPhysicalRule ( std::string ruleName, std::string layerName ) const;
//! \param ruleName The name of the rule
//! \param layerName The name of the layer
//!
//! \Return The matching rule in the table of <b>one layer</b> rules.
//! \function PhysicalRule* Technology::getPhysicalRule ( std::string ruleName, std::string layer1Name, std::string layer2Name ) const;
//! \param ruleName The name of the rule
//! \param layer1Name The name of the first layer
//! \param layer2Name The name of the second layer
//!
//! \Return The matching rule in the table of <b>two layers</b> rules.
//! The order of layers arguments is meaningful and should match
//! The one used at rule creation.
//! \function PhysicalRule* Technology::addUnitRule ( const std::string& ruleName, const std::string& reference );
//! \param ruleName The name of the rule
//! \param reference A free comentary string for further reference.
//!
//! \Return The newly added rule.
//!
//! Create and add to Technology a rule whithout associated layer.
//! The rule should contain a value which is anything but a length
//! (Volt, Henry, Ohm, ...)
//! The rule is created empty. For a detailed explanation see
//! PhysicalRule.
//! \function PhysicalRule* Technology::addPhysicalRule ( std::string ruleName, std::string reference );
//! \param ruleName The name of the rule
//! \param reference A free comentary string for further reference.
//!
//! \Return The newly added rule.
//!
//! Create and add to Technology a rule whithout associated layer.
//! The rule should contain only length value(s) (so DbU::Unit).
//! The rule is created empty. For a detailed explanation see
//! PhysicalRule.
//! \function PhysicalRule* Technology::addPhysicalRule ( std::string ruleName, std::string layerName, std::string reference );
//! \param ruleName The name of the rule
//! \param layerName The one layer associated to the rule.
//! \param reference A free comentary string for further reference.
//!
//! \Return The newly added rule.
//!
//! Create and add to Technology a rule associated to \b one layer.
//! The rule should contain only length value(s) (so DbU::Unit).
//! The rule is created empty. For a detailed explanation see
//! PhysicalRule.
//! \function PhysicalRule* Technology::addPhysicalRule ( std::string ruleName, std::string layer1Name, std::string layer2Name, std::string reference );
//! \param ruleName The name of the rule
//! \param layer1Name First layer associated to the rule.
//! \param layer2Name First layer associated to the rule.
//! \param reference A free comentary string for further reference.
//!
//! \Return The newly added rule.
//!
//! Create and add to Technology a rule associated to \b two layers.
//! The order of layers is meaningful in case of an asymmetric rule.
//! The rule should contain only length value(s) (so DbU::Unit).
//! The rule is created empty. For a detailed explanation see
//! PhysicalRule.
}

View File

@ -183,8 +183,7 @@ TAB_SIZE = 2
ALIASES = "function=\fn " \
"important=\par Important:\n " \
"caution=\par Caution:\n " \
"remark=\par Remark:\n " \
"caution=\par Caution: " \
"sample=\par Sample:\n " \
"Return=<b>Returns:</b> " \
"unsigned=\c unsigned " \
@ -642,6 +641,8 @@ INPUT = Generalities.dox \
DBo.dox \
../../src/hurricane/hurricane/DataBase.h \
DataBase.dox \
../../src/hurricane/hurricane/PhysicalRule.h \
PhysicalRule.dox \
../../src/hurricane/hurricane/Technology.h \
Technology.dox \
../../src/hurricane/hurricane/Layers.h \

View File

@ -20,8 +20,8 @@ error: the type 'dirs' is not supported for the entry tag within a navindex! Che
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Interruption.dox:41: warning: documented symbol `const string & Hurricane::Interruption::GetReason' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Interruption.dox:45: warning: documented symbol `int Hurricane::Interruption::GetCode' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:439: warning: documented symbol `typedef list< Element > Hurricane::ElementList' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Technology.dox:130: warning: documented symbol `bool Hurricane::Technology::setWorkingLayer' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Technology.dox:135: warning: documented symbol `bool Hurricane::Technology::setWorkingLayer' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Technology.dox:183: warning: documented symbol `bool Hurricane::Technology::setWorkingLayer' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Technology.dox:188: warning: documented symbol `bool Hurricane::Technology::setWorkingLayer' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Layer.dox:128: warning: documented symbol `const DbU::Unit & Hurricane::Layer::getPitch' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Layer.dox:181: warning: no uniquely matching class member found for
DbU::Unit Hurricane::Layer::getEnclosure() const
@ -71,103 +71,18 @@ Possible candidates:
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/PrivateProperty.dox:49: warning: documented symbol `typedef PrivateProperty::Inherit Hurricane::Property' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/SharedProperty.dox:50: warning: documented symbol `typedef SharedProperty::Inherit Hurricane::Property' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/SharedProperty.dox:71: warning: documented symbol `DBos Hurricane::SharedProperty::GetOwners' was not declared or defined.
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Generalities.dox:34: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Generalities.dox:138: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DbU.dox:14: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DbU.dox:235: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DbU.dox:247: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/BasicLayer.dox:22: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/BasicLayer.dox:27: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Box.dox:72: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:40: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:132: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:144: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:151: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:160: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:164: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:227: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Cell.dox:235: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:108: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:114: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:179: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:189: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:199: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:206: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:214: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:240: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:244: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Component.dox:31: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Component.dox:172: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:48: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:57: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:60: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:82: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:89: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:151: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:158: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:165: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Contact.dox:33: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/ContactLayer.dox:35: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DataBase.dox:23: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DataBase.dox:32: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DBo.dox:187: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DBo.dox:216: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DBo.dox:268: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DBo.dox:271: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DBo.dox:277: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DBo.dox:279: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DebugSession.dox:103: warning: Found unknown command `\Returns'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/DiffusionLayer.dox:35: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Entity.dox:41: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Exception.dox:14: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:375: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:392: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:399: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Collection.dox:384: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Filter.dox:187: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Filter.dox:204: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Filter.dox:211: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Filter.dox:196: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Locator.dox:129: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Locator.dox:146: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Locator.dox:153: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Locator.dox:138: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Go.dox:35: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Go.dox:201: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:101: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:108: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:116: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:124: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:132: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:141: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:145: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:176: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:184: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:193: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:203: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:226: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:236: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Hook.dox:245: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Horizontal.dox:48: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Horizontal.dox:57: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Horizontal.dox:65: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/HyperNet.dox:20: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/HyperNet.dox:31: warning: Found unknown command `\sreturn'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/HyperNet.dox:34: warning: Found unknown command `\sreturn'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:73: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:77: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:103: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:127: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:145: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:156: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:159: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:163: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:177: warning: Unsupported xml/html tag <masterCell> found
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:182: warning: Unsupported xml/html tag <this> found
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:182: warning: Unsupported xml/html tag <cloneCell> found
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:184: warning: Unsupported xml/html tag <cloneCell> found
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Instance.dox:186: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Interval.dox:57: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/JsonObject.dox:40: warning: Illegal command \typename as the argument of a \typename command
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/JsonObject.dox:72: warning: argument 'stack' of command @param is not found in the argument list of Hurricane::JsonObject::check(JsonStack &, std::string fname) const
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/JsonObject.dox:148: warning: argument 'name' of command @param is not found in the argument list of Hurricane::JsonObject::setName(const std::string &)
@ -181,68 +96,19 @@ Possible candidates:
parameter 'stack'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/JsonObject.dox:193: warning: Found unknown command `\Remark'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/JsonObject.dox:204: warning: Found unknown command `\Remark'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Layer.dox:136: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Layer.dox:144: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Layer.dox:238: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Library.dox:32: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Library.dox:40: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Library.dox:86: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Locator.dox:89: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Locator.dox:108: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Name.dox:57: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:109: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:129: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:184: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:191: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:198: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:230: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:245: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:274: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:279: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:288: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:295: warning: Unsupported xml/html tag <this> found
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:295: warning: Unsupported xml/html tag <cloneCell> found
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:299: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Filter.dox:219: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Filter.dox:228: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Filter.dox:235: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:60: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:67: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:70: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:162: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:170: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:173: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:180: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Occurrence.dox:187: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Path.dox:40: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Path.dox:47: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Path.dox:54: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Path.dox:57: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Path.dox:66: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Path.dox:69: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Path.dox:86: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Plug.dox:20: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Plug.dox:25: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Plug.dox:60: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Plug.dox:68: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Plug.dox:76: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Plug.dox:80: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/PrivateProperty.dox:76: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:27: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Net.dox:299: warning: Unsupported xml/html tag <cloneCell> found
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/PhysicalRule.dox:70: warning: argument 'hvalue' of command @param is not found in the argument list of Hurricane::PhysicalRule::addValue(Hurricane::DbU::Unit hValue, Hurricane::DbU::Unit vValue, Hurricane::DbU::Unit maxLength)
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/PhysicalRule.dox:70: warning: argument 'vvalue' of command @param is not found in the argument list of Hurricane::PhysicalRule::addValue(Hurricane::DbU::Unit hValue, Hurricane::DbU::Unit vValue, Hurricane::DbU::Unit maxLength)
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/src/hurricane/hurricane/PhysicalRule.h:83: warning: The following parameters of Hurricane::PhysicalRule::addValue(Hurricane::DbU::Unit hValue, Hurricane::DbU::Unit vValue, Hurricane::DbU::Unit maxLength) are not documented:
parameter 'hValue'
parameter 'vValue'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:47: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:53: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:159: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:182: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:202: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:237: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:358: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:367: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Property.dox:373: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/QuadTree.dox:13: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/QuadTree.dox:66: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/QuadTree.dox:68: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/QuadTree.dox:78: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/QuadTree.dox:80: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Query.dox:78: warning: Found unknown command `\sreturn'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Query.dox:81: warning: Found unknown command `\sreturn'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Query.dox:84: warning: Found unknown command `\sreturn'
@ -262,16 +128,3 @@ Possible candidates:
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Query.dox:131: warning: Found unknown command `\sreturn'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Query.dox:135: warning: Found unknown command `\sreturn'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Query.dox:139: warning: Found unknown command `\sreturn'
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/RegularLayer.dox:29: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/RoutingPad.dox:145: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Rubber.dox:43: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Technology.dox:16: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Technology.dox:26: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Technology.dox:62: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Transformation.dox:35: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/TransistorLayer.dox:35: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Vertical.dox:58: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Vertical.dox:47: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Vertical.dox:67: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/Vertical.dox:75: warning: Illegal command n as part of a title section
/dsk/l1/jpc/coriolis-2.x/src/coriolis/hurricane/doc/hurricane/ViaLayer.dox:35: warning: Illegal command n as part of a title section

View File

@ -51,7 +51,7 @@ $(function() {
<div class="ttc" id="classHurricane_1_1BasicLayer_1_1Material_html_a3e815440ad4b86b3569fa54ca06fc3e8a506eb536d54e1005b664cc0f2c101670"><div class="ttname"><a href="classHurricane_1_1BasicLayer_1_1Material.html#a3e815440ad4b86b3569fa54ca06fc3e8a506eb536d54e1005b664cc0f2c101670">Hurricane::BasicLayer::Material::poly</a></div><div class="ttdef"><b>Definition:</b> BasicLayer.h:58</div></div>
<div class="ttc" id="classHurricane_1_1BasicLayer_1_1Material_html_a3e815440ad4b86b3569fa54ca06fc3e8a73d7adbdda868d5e680a24ce3c20279e"><div class="ttname"><a href="classHurricane_1_1BasicLayer_1_1Material.html#a3e815440ad4b86b3569fa54ca06fc3e8a73d7adbdda868d5e680a24ce3c20279e">Hurricane::BasicLayer::Material::pImplant</a></div><div class="ttdef"><b>Definition:</b> BasicLayer.h:56</div></div>
<div class="ttc" id="classHurricane_1_1BasicLayer_1_1Material_html_a3e815440ad4b86b3569fa54ca06fc3e8"><div class="ttname"><a href="classHurricane_1_1BasicLayer_1_1Material.html#a3e815440ad4b86b3569fa54ca06fc3e8">Hurricane::BasicLayer::Material::Code</a></div><div class="ttdeci">Code</div><div class="ttdef"><b>Definition:</b> BasicLayer.h:53</div></div>
<div class="ttc" id="classHurricane_1_1Name_html"><div class="ttname"><a href="classHurricane_1_1Name.html">Hurricane::Name</a></div><div class="ttdoc">Name description (API) </div><div class="ttdef"><b>Definition:</b> Name.h:36</div></div>
<div class="ttc" id="classHurricane_1_1Name_html"><div class="ttname"><a href="classHurricane_1_1Name.html">Hurricane::Name</a></div><div class="ttdoc">Name description (API) </div><div class="ttdef"><b>Definition:</b> Name.h:35</div></div>
<div class="ttc" id="group__DbUGroup_html_ga4fbfa3e8c89347af76c9628ea06c4146"><div class="ttname"><a href="group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">Hurricane::DbU::Unit</a></div><div class="ttdeci">std::int64_t Unit</div><div class="ttdef"><b>Definition:</b> DbU.h:70</div></div>
<div class="ttc" id="classHurricane_1_1DBo_html"><div class="ttname"><a href="classHurricane_1_1DBo.html">Hurricane::DBo</a></div><div class="ttdoc">DataBase object root class (API). </div><div class="ttdef"><b>Definition:</b> DBo.h:47</div></div>
<div class="ttc" id="classHurricane_1_1BasicLayer_html_aeb7fd37db4ecf8e56e1992d6350fac58"><div class="ttname"><a href="classHurricane_1_1BasicLayer.html#aeb7fd37db4ecf8e56e1992d6350fac58">Hurricane::BasicLayer::getMaterial</a></div><div class="ttdeci">const Material &amp; getMaterial() const</div><div class="ttdef"><b>Definition:</b> BasicLayer.h:140</div></div>
@ -68,13 +68,13 @@ $(function() {
<div class="ttc" id="namespaceHurricane_html"><div class="ttname"><a href="namespaceHurricane.html">Hurricane</a></div><div class="ttdoc">The namespace dedicated to Hurricane. </div><div class="ttdef"><b>Definition:</b> Generalities.dox:5</div></div>
<div class="ttc" id="classHurricane_1_1BasicLayer_html_a766c6dc1120de2066b15411861f5d4f8"><div class="ttname"><a href="classHurricane_1_1BasicLayer.html#a766c6dc1120de2066b15411861f5d4f8">Hurricane::BasicLayer::setBlockageLayer</a></div><div class="ttdeci">void setBlockageLayer(BasicLayer *layer)</div><div class="ttdef"><b>Definition:</b> BasicLayer.h:144</div></div>
<div class="ttc" id="classHurricane_1_1BasicLayer_1_1Material_html_a3e815440ad4b86b3569fa54ca06fc3e8ab67cfb3c192135ea8d52452a8932f7b7"><div class="ttname"><a href="classHurricane_1_1BasicLayer_1_1Material.html#a3e815440ad4b86b3569fa54ca06fc3e8ab67cfb3c192135ea8d52452a8932f7b7">Hurricane::BasicLayer::Material::active</a></div><div class="ttdef"><b>Definition:</b> BasicLayer.h:57</div></div>
<div class="ttc" id="classHurricane_1_1Technology_html"><div class="ttname"><a href="classHurricane_1_1Technology.html">Hurricane::Technology</a></div><div class="ttdoc">Technological rules description (API). </div><div class="ttdef"><b>Definition:</b> Technology.h:66</div></div>
<div class="ttc" id="classHurricane_1_1Technology_html"><div class="ttname"><a href="classHurricane_1_1Technology.html">Hurricane::Technology</a></div><div class="ttdoc">Technological rules description (API). </div><div class="ttdef"><b>Definition:</b> Technology.h:62</div></div>
</div><!-- fragment --></div><!-- contents -->
<br>
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -50,7 +50,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -70,13 +70,13 @@ $(function() {
<div class="ttc" id="namespaceHurricane_html"><div class="ttname"><a href="namespaceHurricane.html">Hurricane</a></div><div class="ttdoc">The namespace dedicated to Hurricane. </div><div class="ttdef"><b>Definition:</b> Generalities.dox:5</div></div>
<div class="ttc" id="classHurricane_1_1SubSetCollection_html_a6da1f511e27351cdc8b56bda7fbc44e8"><div class="ttname"><a href="classHurricane_1_1SubSetCollection.html#a6da1f511e27351cdc8b56bda7fbc44e8">Hurricane::SubSetCollection::SubSetCollection</a></div><div class="ttdeci">SubSetCollection(const Collection&lt; Type &gt; &amp;collection, const Filter&lt; Type &gt; &amp;filter)</div><div class="ttdef"><b>Definition:</b> Collection.h:935</div></div>
<div class="ttc" id="classHurricane_1_1SubTypeCollection_html_a09df045ff335493ac3068a865b793291"><div class="ttname"><a href="classHurricane_1_1SubTypeCollection.html#a09df045ff335493ac3068a865b793291">Hurricane::SubTypeCollection::SubTypeCollection</a></div><div class="ttdeci">SubTypeCollection(const GenericCollection&lt; Type &gt; &amp;collection)</div><div class="ttdef"><b>Definition:</b> Collection.h:587</div></div>
<div class="ttc" id="clasststream_html_a01303d5c2c5cd83d06985622ca50d77b"><div class="ttname"><a href="clasststream.html#a01303d5c2c5cd83d06985622ca50d77b">tstream::enabled</a></div><div class="ttdeci">bool enabled() const</div><div class="ttdef"><b>Definition:</b> Commons.h:999</div></div>
<div class="ttc" id="clasststream_html_a01303d5c2c5cd83d06985622ca50d77b"><div class="ttname"><a href="clasststream.html#a01303d5c2c5cd83d06985622ca50d77b">tstream::enabled</a></div><div class="ttdeci">bool enabled() const</div><div class="ttdef"><b>Definition:</b> Commons.h:1047</div></div>
</div><!-- fragment --></div><!-- contents -->
<br>
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -76,7 +76,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -81,7 +81,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -53,13 +53,13 @@ $(function() {
<div class="ttc" id="classHurricane_1_1DataBase_html"><div class="ttname"><a href="classHurricane_1_1DataBase.html">Hurricane::DataBase</a></div><div class="ttdoc">The whole DataBase (API). </div><div class="ttdef"><b>Definition:</b> DataBase.h:40</div></div>
<div class="ttc" id="classHurricane_1_1DataBase_html_a53d0b9fcd06b73f3968c8f238f377a88"><div class="ttname"><a href="classHurricane_1_1DataBase.html#a53d0b9fcd06b73f3968c8f238f377a88">Hurricane::DataBase::getDB</a></div><div class="ttdeci">static DataBase * getDB()</div></div>
<div class="ttc" id="namespaceHurricane_html"><div class="ttname"><a href="namespaceHurricane.html">Hurricane</a></div><div class="ttdoc">The namespace dedicated to Hurricane. </div><div class="ttdef"><b>Definition:</b> Generalities.dox:5</div></div>
<div class="ttc" id="classHurricane_1_1Technology_html"><div class="ttname"><a href="classHurricane_1_1Technology.html">Hurricane::Technology</a></div><div class="ttdoc">Technological rules description (API). </div><div class="ttdef"><b>Definition:</b> Technology.h:66</div></div>
<div class="ttc" id="classHurricane_1_1Technology_html"><div class="ttname"><a href="classHurricane_1_1Technology.html">Hurricane::Technology</a></div><div class="ttdoc">Technological rules description (API). </div><div class="ttdef"><b>Definition:</b> Technology.h:62</div></div>
</div><!-- fragment --></div><!-- contents -->
<br>
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -98,7 +98,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -62,7 +62,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -60,7 +60,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -56,7 +56,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -61,7 +61,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -64,7 +64,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -68,7 +68,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -65,7 +65,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -62,7 +62,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -52,7 +52,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -52,7 +52,7 @@ $(function() {
<div class="ttc" id="classHurricane_1_1Instance_html_ad08a772e5e36582070cdc407cfcc1a64"><div class="ttname"><a href="classHurricane_1_1Instance.html#ad08a772e5e36582070cdc407cfcc1a64">Hurricane::Instance::getMasterCell</a></div><div class="ttdeci">Cell * getMasterCell() const</div><div class="ttdef"><b>Definition:</b> Instance.h:123</div></div>
<div class="ttc" id="classHurricane_1_1Instance_html_a5433b64eed99f9a099004490fae6d8f4"><div class="ttname"><a href="classHurricane_1_1Instance.html#a5433b64eed99f9a099004490fae6d8f4">Hurricane::Instance::getPlugs</a></div><div class="ttdeci">Plugs getPlugs() const</div><div class="ttdef"><b>Definition:</b> Instance.h:127</div></div>
<div class="ttc" id="classHurricane_1_1Instance_html_a18beeab0def83c20e25a710b30dd8ca9"><div class="ttname"><a href="classHurricane_1_1Instance.html#a18beeab0def83c20e25a710b30dd8ca9">Hurricane::Instance::getConnectedPlugs</a></div><div class="ttdeci">Plugs getConnectedPlugs() const</div></div>
<div class="ttc" id="classHurricane_1_1Name_html"><div class="ttname"><a href="classHurricane_1_1Name.html">Hurricane::Name</a></div><div class="ttdoc">Name description (API) </div><div class="ttdef"><b>Definition:</b> Name.h:36</div></div>
<div class="ttc" id="classHurricane_1_1Name_html"><div class="ttname"><a href="classHurricane_1_1Name.html">Hurricane::Name</a></div><div class="ttdoc">Name description (API) </div><div class="ttdef"><b>Definition:</b> Name.h:35</div></div>
<div class="ttc" id="classHurricane_1_1Instance_html_ae2bc936dfecfaf70a0052959b4b2861e"><div class="ttname"><a href="classHurricane_1_1Instance.html#ae2bc936dfecfaf70a0052959b4b2861e">Hurricane::Instance::getIsUnderFilter</a></div><div class="ttdeci">static InstanceFilter getIsUnderFilter(const Box &amp;area)</div></div>
<div class="ttc" id="classHurricane_1_1Instance_1_1PlacementStatus_html_af76cc0838783b3eb3a515eb3c3e0f7bf"><div class="ttname"><a href="classHurricane_1_1Instance_1_1PlacementStatus.html#af76cc0838783b3eb3a515eb3c3e0f7bf">Hurricane::Instance::PlacementStatus::Code</a></div><div class="ttdeci">Code</div><div class="ttdef"><b>Definition:</b> Instance.h:48</div></div>
<div class="ttc" id="group__DbUGroup_html_ga4fbfa3e8c89347af76c9628ea06c4146"><div class="ttname"><a href="group__DbUGroup.html#ga4fbfa3e8c89347af76c9628ea06c4146">Hurricane::DbU::Unit</a></div><div class="ttdeci">std::int64_t Unit</div><div class="ttdef"><b>Definition:</b> DbU.h:70</div></div>
@ -86,7 +86,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -55,7 +55,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -50,7 +50,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -92,7 +92,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -50,7 +50,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -54,7 +54,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -59,7 +59,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -54,7 +54,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -50,7 +50,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -58,7 +58,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -60,7 +60,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -56,7 +56,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -50,7 +50,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -69,7 +69,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -50,7 +50,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -60,7 +60,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

View File

@ -62,7 +62,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -54,7 +54,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -50,7 +50,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -98,7 +98,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -90,7 +90,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -65,7 +65,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -80,7 +80,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -54,7 +54,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -67,7 +67,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -57,7 +57,7 @@ $(function() {
<hr>
<table class="footer1">
<tr>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Apr 27 2020</small></td>
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Tue Jul 21 2020</small></td>
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
</tr>
</table>

View File

@ -610,6 +610,16 @@
margin-right: 5%
}
div.fragment a.code:link,
div.fragment a.code:visited,
div.fragment a.codeRef:link,
div.fragment a.codeRef:visited {
text-decoration: none;
font-weight: bold;
color: black;
border: none;
}
div.line {
white-space: pre;
padding: 0pt;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More