20 #ifndef HURRICANE_CELL_H 21 #define HURRICANE_CELL_H 24 #include "hurricane/Flags.h" 25 #include "hurricane/Observer.h" 26 #include "hurricane/Signature.h" 27 #include "hurricane/Relation.h" 28 #include "hurricane/Pathes.h" 29 #include "hurricane/Entity.h" 30 #include "hurricane/Cells.h" 31 #include "hurricane/DeepNet.h" 32 #include "hurricane/Instance.h" 33 #include "hurricane/Pin.h" 34 #include "hurricane/Pins.h" 35 #include "hurricane/Slices.h" 36 #include "hurricane/ExtensionSlice.h" 37 #include "hurricane/Rubbers.h" 38 #include "hurricane/Markers.h" 39 #include "hurricane/Marker.h" 40 #include "hurricane/Reference.h" 41 #include "hurricane/Components.h" 42 #include "hurricane/Occurrences.h" 43 #include "hurricane/Transformation.h" 44 #include "hurricane/Layer.h" 45 #include "hurricane/QuadTree.h" 47 #include "hurricane/IntrusiveSet.h" 48 #include "hurricane/MapCollection.h" 49 #include "hurricane/NetAlias.h" 58 typedef multimap<Entity*,Entity*> SlaveEntityMap;
73 public:
typedef map<Name,ExtensionSlice*> ExtensionSliceMap;
75 public:
class Flags :
public BaseFlags {
77 enum Flag { NoFlags = (1 << 0)
78 , BuildRings = (1 << 1)
79 , BuildClockRings = (1 << 2)
80 , BuildSupplyRings = (1 << 3)
81 , NoClockFlatten = (1 << 4)
82 , WarnOnUnplacedInstances = (1 << 5)
83 , StayOnPlugs = (1 << 6)
84 , MaskRings = BuildRings|BuildClockRings|BuildSupplyRings
86 , CellAboutToChange = (1 << 10)
87 , CellChanged = (1 << 11)
88 , CellDestroyed = (1 << 12)
90 , Terminal = (1 << 20)
91 , FlattenLeaf = (1 << 21)
94 , FlattenedNets = (1 << 24)
97 , MergedQuadTree = (1 << 27)
98 , SlavedAb = (1 << 28)
99 , Materialized = (1 << 29)
103 Flags ( uint64_t flags = NoFlags );
105 virtual std::string _getTypeName ()
const;
106 virtual std::string _getString ()
const;
109 class UniquifyRelation :
public Relation {
112 static UniquifyRelation*
get (
const Cell* );
114 static Name staticGetName ();
115 Name getUniqueName ();
116 static std::string getTrunkName (
Name name );
117 virtual bool hasJson ()
const;
118 virtual void toJson ( JsonWriter*,
const DBo* )
const;
119 inline void _setOwner (
Cell* );
120 inline void _setDuplicates (
unsigned int );
121 virtual string _getTypeName ()
const;
122 virtual Record* _getRecord ()
const;
124 static const Name _name;
125 unsigned int _duplicates;
127 UniquifyRelation (
Cell* );
129 virtual void _preDestroy ();
134 static void initialize ();
135 JsonProperty (
unsigned long flags );
136 virtual string getTypeName ()
const;
137 virtual JsonProperty* clone (
unsigned long )
const;
143 static void initialize ();
144 JsonPropertyRef (
unsigned long flags );
145 virtual string getTypeName ()
const;
146 virtual JsonPropertyRef* clone (
unsigned long )
const;
158 virtual Cell* getElement ()
const;
160 virtual bool isValid ()
const;
161 virtual void progress ();
162 virtual string _getString ()
const;
168 inline ClonedSet (
const Cell* cell );
169 inline ClonedSet (
const ClonedSet& );
172 virtual string _getString ()
const;
177 class SlavedsRelation :
public Relation {
180 static SlavedsRelation*
get (
const Cell* );
182 static Name staticGetName ();
183 virtual bool hasJson ()
const;
184 virtual void toJson ( JsonWriter*,
const DBo* )
const;
185 inline void _setOwner (
Cell* );
186 virtual string _getTypeName ()
const;
187 virtual Record* _getRecord ()
const;
189 static const Name _name;
191 SlavedsRelation (
Cell* );
193 virtual void _preDestroy ();
198 static void initialize ();
199 JsonProperty (
unsigned long flags );
200 virtual string getTypeName ()
const;
201 virtual JsonProperty* clone (
unsigned long )
const;
207 static void initialize ();
208 JsonPropertyRef (
unsigned long flags );
209 virtual string getTypeName ()
const;
210 virtual JsonPropertyRef* clone (
unsigned long )
const;
222 virtual Cell* getElement ()
const;
224 virtual bool isValid ()
const;
225 virtual void progress ();
226 virtual string _getString ()
const;
232 inline SlavedsSet (
const Cell* cell );
233 inline SlavedsSet (
const SlavedsSet& );
236 virtual string _getString ()
const;
241 class InstanceMap :
public IntrusiveMap<Name, Instance> {
244 public:
typedef IntrusiveMap<Name, Instance>
Inherit;
246 public: InstanceMap();
249 public:
virtual unsigned _getHashValue(
Name name)
const;
251 public:
virtual void _setNextElement(
Instance* instance,
Instance* nextInstance)
const;
255 public:
class SlaveInstanceSet :
public IntrusiveSet<Instance> {
258 public:
typedef IntrusiveSet<Instance>
Inherit;
260 public: SlaveInstanceSet();
262 public:
virtual unsigned _getHashValue(
Instance* slaveInstance)
const;
264 public:
virtual void _setNextElement(
Instance* slaveInstance,
Instance* nextSlaveInstance)
const;
268 public:
class NetMap :
public IntrusiveMapConst<Name, Net> {
271 public:
typedef IntrusiveMapConst<Name, Net>
Inherit;
275 public:
virtual const Name& _getKey(
Net* net)
const;
276 public:
virtual unsigned _getHashValue(
const Name& name)
const;
277 public:
virtual Net* _getNextElement(
Net* net)
const;
278 public:
virtual void _setNextElement(
Net* net,
Net* nextNet)
const;
282 class PinMap :
public IntrusiveMap<Name, Pin> {
285 public:
typedef IntrusiveMap<Name, Pin>
Inherit;
289 public:
virtual Name _getKey(
Pin* pin)
const;
290 public:
virtual unsigned _getHashValue(
Name name)
const;
291 public:
virtual Pin* _getNextElement(
Pin* pin)
const;
292 public:
virtual void _setNextElement(
Pin* pin,
Pin* nextPin)
const;
296 public:
class SliceMap :
public IntrusiveMap<const Layer*, Slice> {
299 public:
typedef IntrusiveMap<const Layer*, Slice>
Inherit;
303 public:
virtual const Layer* _getKey(
Slice* slice)
const;
304 public:
virtual unsigned _getHashValue(
const Layer* layer)
const;
305 public:
virtual Slice* _getNextElement(
Slice* slice)
const;
306 public:
virtual void _setNextElement(
Slice* slice,
Slice* nextSlice)
const;
310 public:
class MarkerSet :
public IntrusiveSet<Marker> {
313 public:
typedef IntrusiveSet<Marker>
Inherit;
317 public:
virtual unsigned _getHashValue(Marker* marker)
const;
318 public:
virtual Marker* _getNextElement(Marker* marker)
const;
319 public:
virtual void _setNextElement(Marker* marker, Marker* nextMarker)
const;
328 private:
Path _shuntedPath;
329 private: InstanceMap _instanceMap;
331 private: SlaveInstanceSet _slaveInstanceSet;
332 private: NetMap _netMap;
333 private: PinMap _pinMap;
334 private: SliceMap* _sliceMap;
335 private: ExtensionSliceMap _extensionSlices;
336 private: MarkerSet _markerSet;
337 private:
Box _abutmentBox;
338 private:
Box _boundingBox;
339 private:
Cell* _nextOfLibraryCellMap;
340 private:
Cell* _nextOfSymbolCellSet;
341 private: SlaveEntityMap _slaveEntityMap;
342 private: AliasNameSet _netAliasSet;
343 private: Observable _observers;
344 private: Flags _flags;
354 protected:
virtual void _postCreate();
356 protected:
virtual void _preDestroy();
358 public:
virtual string _getTypeName()
const {
return _TName(
"Cell");};
359 public:
virtual string _getString()
const;
360 public:
virtual Record* _getRecord()
const;
361 public:
static string getFlagString( uint64_t );
362 public:
static Record* getFlagRecord( uint64_t );
363 public:
static Slot* getFlagSlot( uint64_t );
365 public: InstanceMap& _getInstanceMap() {
return _instanceMap;};
366 public:
QuadTree* _getQuadTree() {
return _quadTree;};
367 public: SlaveInstanceSet& _getSlaveInstanceSet() {
return _slaveInstanceSet;};
368 public: NetMap& _getNetMap() {
return _netMap;};
369 public: PinMap& _getPinMap() {
return _pinMap;};
370 public: SliceMap* _getSliceMap() {
return _sliceMap;};
371 public: ExtensionSliceMap& _getExtensionSliceMap() {
return _extensionSlices;};
372 public: MarkerSet& _getMarkerSet() {
return _markerSet;};
373 public:
Cell* _getNextOfLibraryCellMap()
const {
return _nextOfLibraryCellMap;};
374 public:
Cell* _getNextOfSymbolCellSet()
const {
return _nextOfSymbolCellSet;};
375 public: AliasNameSet& _getNetAliasSet() {
return _netAliasSet; }
377 public:
void _setNextOfLibraryCellMap(
Cell* cell) {_nextOfLibraryCellMap = cell;};
378 public:
void _setNextOfSymbolCellSet(
Cell* cell) {_nextOfSymbolCellSet = cell;};
380 public:
void _addNetAlias(NetAliasName* alias) { _netAliasSet.insert(alias); }
381 public:
void _removeNetAlias(NetAliasName* alias) { _netAliasSet.erase(alias); }
383 public:
void _fit(
const Box& box);
384 public:
void _unfit(
const Box& box);
386 public:
void _addSlaveEntity(
Entity* entity,
Entity* slaveEntity);
387 public:
void _removeSlaveEntity(
Entity* entity,
Entity* slaveEntity);
388 public:
void _getSlaveEntities(SlaveEntityMap::iterator& begin, SlaveEntityMap::iterator& end);
389 public:
void _getSlaveEntities(
Entity* entity, SlaveEntityMap::iterator& begin, SlaveEntityMap::iterator& end);
390 public:
void _insertSlice(ExtensionSlice*);
391 public:
void _removeSlice(ExtensionSlice*);
392 public:
void _slaveAbutmentBox(
Cell*);
393 public:
void _changeQuadTree(
Cell*);
394 public:
void _setShuntedPath(
Path path) { _shuntedPath=path; }
395 protected:
void _setAbutmentBox(
const Box& abutmentBox);
397 public:
virtual void _toJson(JsonWriter*)
const;
398 public:
virtual void _toJsonCollections(JsonWriter*)
const;
404 public:
static Cell* fromJson(
const string& filename);
409 public:
virtual Cell* getCell()
const {
return (
Cell*)
this;};
410 public:
virtual Box getBoundingBox()
const;
412 public:
string getHierarchicalName()
const;
414 public:
const Flags& getFlags()
const {
return _flags; }
415 public: Path getShuntedPath()
const {
return _shuntedPath; }
416 public:
Entity* getEntity(
const Signature&)
const;
419 public:
Instances getPlacedInstances()
const;
420 public:
Instances getFixedInstances()
const;
421 public:
Instances getUnplacedInstances()
const;
422 public:
Instances getNotUnplacedInstances()
const;
424 public:
Instances getPlacedInstancesUnder(
const Box& area)
const;
425 public:
Instances getFixedInstancesUnder(
const Box& area)
const;
426 public:
Instances getUnplacedInstancesUnder(
const Box& area)
const;
427 public:
Instances getNotUnplacedInstancesUnder(
const Box& area)
const;
429 public:
Instances getTerminalInstances()
const;
430 public:
Instances getTerminalInstancesUnder(
const Box& area)
const;
431 public:
Instances getNonTerminalInstances()
const;
432 public:
Instances getNonTerminalInstancesUnder(
const Box& area)
const;
433 public:
Instances getLeafInstances()
const;
434 public:
Instances getLeafInstancesUnder(
const Box& area)
const;
435 public:
Instances getNonLeafInstances()
const;
436 public:
Instances getNonLeafInstancesUnder(
const Box& area)
const;
438 public: DeepNet* getDeepNet(
Path,
const Net* )
const;
445 public:
Nets getPowerNets()
const;
446 public:
Nets getGroundNets()
const;
447 public:
Pin* getPin(
const Name& name)
const {
return _pinMap.getElement(name);};
448 public: Pins getPins()
const {
return _pinMap.getElements();};
451 public:
const ExtensionSliceMap& getExtensionSliceMap()
const {
return _extensionSlices; };
452 public: ExtensionSlice* getExtensionSlice(
const Name& name)
const;
453 public: ExtensionSlices getExtensionSlices(ExtensionSlice::Mask mask=~0)
const;
456 public: Markers getMarkers()
const {
return _markerSet.getElements();};
457 public: Markers getMarkersUnder(
const Box& area)
const;
458 public: References getReferences()
const;
463 public:
Occurrences getTerminalInstanceOccurrences()
const;
464 public:
Occurrences getTerminalInstanceOccurrencesUnder(
const Box& area)
const;
466 public:
Occurrences getLeafInstanceOccurrencesUnder(
const Box& area)
const;
470 public:
Occurrences getHyperNetRootNetOccurrences()
const;
471 public: ExtensionSlice::Mask getExtensionSliceMask (
const Name& name )
const;
472 public:
Gos getExtensionGos (
const Name& name )
const;
473 public:
Gos getExtensionGos ( ExtensionSlice::Mask mask = ~0 )
const;
474 public:
Gos getExtensionGosUnder (
const Box& area,
const Name& name )
const;
475 public:
Gos getExtensionGosUnder (
const Box& area, ExtensionSlice::Mask mask = ~0 )
const;
476 public:
Cells getSubCells()
const;
477 public:
Cells getClonedCells()
const;
478 public: Cell* getCloneMaster()
const;
479 public:
Pathes getRecursiveSlavePathes()
const;
486 public:
bool isTerminal()
const {
return _flags.isset(Flags::Terminal);};
487 public:
bool isFlattenLeaf()
const {
return _flags.isset(Flags::FlattenLeaf);};
488 public:
bool isLeaf()
const;
492 public:
bool isPad()
const {
return _flags.isset(Flags::Pad);};
493 public:
bool isFeed()
const {
return _flags.isset(Flags::Feed);};
494 public:
bool isFlattenedNets()
const {
return _flags.isset(Flags::FlattenedNets);};
495 public:
bool isPlaced()
const {
return _flags.isset(Flags::Placed);};
496 public:
bool isRouted()
const {
return _flags.isset(Flags::Routed);};
497 public:
bool isNetAlias(
const Name& name)
const;
502 public:
void setName(
const Name& name);
504 public:
void slaveAbutmentBox(Cell*);
505 public:
void unslaveAbutmentBox(Cell*);
507 public:
void setFlattenLeaf(
bool isFlattenLeaf) {_flags.set(Flags::FlattenLeaf,isFlattenLeaf);};
508 public:
void setPad(
bool isPad) {_flags.set(Flags::Pad,isPad);};
509 public:
void setFeed(
bool isFeed) {_flags.set(Flags::Feed,isFeed);};
510 public:
void setRouted(
bool isRouted) {_flags.set(Flags::Routed,isRouted);};
511 public:
void flattenNets(uint64_t flags=Flags::BuildRings);
512 public:
void flattenNets(
const Instance* instance, uint64_t flags=Flags::BuildRings);
513 public:
void createRoutingPadRings(uint64_t flags=Flags::BuildRings);
514 public:
void setFlags(uint64_t flags) { _flags |= flags; }
515 public:
void resetFlags(uint64_t flags) { _flags &= ~flags; }
516 public:
bool updatePlacedFlag();
520 public:
void uniquify(
unsigned int depth=std::numeric_limits<unsigned int>::max());
521 public:
void addObserver(BaseObserver*);
522 public:
void removeObserver(BaseObserver*);
523 public:
void notify(
unsigned flags);
528 inline Cell::ClonedSet::Locator::Locator (
const Locator& other )
530 , _dboLocator(other._dboLocator)
533 inline Cell::ClonedSet::ClonedSet (
const Cell* cell )
538 inline Cell::ClonedSet::ClonedSet (
const ClonedSet& other )
544 inline void Cell::UniquifyRelation::_setOwner ( Cell* owner ) { _setMasterOwner(owner); }
545 inline void Cell::UniquifyRelation::_setDuplicates (
unsigned int duplicates ) { _duplicates=duplicates; }
548 inline Cell::SlavedsSet::Locator::Locator (
const Locator& other )
550 , _dboLocator(other._dboLocator)
553 inline Cell::SlavedsSet::SlavedsSet (
const Cell* cell )
558 inline Cell::SlavedsSet::SlavedsSet (
const SlavedsSet& other )
564 inline void Cell::SlavedsRelation::_setOwner ( Cell* owner ) { _setMasterOwner(owner); }
567 class JsonCell :
public JsonEntity {
570 public:
static void initialize();
571 public: JsonCell(
unsigned long flags);
572 public:
virtual ~JsonCell();
573 public:
virtual string getTypeName()
const;
574 public:
virtual JsonCell* clone(
unsigned long)
const;
575 public:
virtual void toData(JsonStack&);
576 private: Cell* _cell;
577 private:
bool _materializationState;
584 INSPECTOR_P_SUPPORT(Hurricane::Cell::Flags);
585 INSPECTOR_P_SUPPORT(Hurricane::Cell::InstanceMap);
586 INSPECTOR_P_SUPPORT(Hurricane::Cell::SlaveInstanceSet);
587 INSPECTOR_P_SUPPORT(Hurricane::Cell::NetMap);
588 INSPECTOR_P_SUPPORT(Hurricane::Cell::PinMap);
589 INSPECTOR_P_SUPPORT(Hurricane::Cell::SliceMap);
590 INSPECTOR_P_SUPPORT(Hurricane::Cell::MarkerSet);
593 #endif // HURRICANE_CELL_H Occurrences getLeafInstanceOccurrences(const Instance *topInstance=NULL) const
+
Path description (API)
Definition: Path.h:37
Collection description (API)
Definition: Collection.h:39
Pad description (API)
Definition: Pad.h:36
Library description (API)
Definition: Library.h:38
@@ -97,6 +98,7 @@ $(function() {
GenericCollection< Path > Pathes
Definition: Pathes.h:34
void setName(const Name &name)
Instance * getInstance(const Name &name) const
Definition: Cell.h:417
+
Occurrences getNonLeafInstanceOccurrences(const Instance *topInstance=NULL) const
The namespace dedicated to Hurricane.
Definition: Generalities.dox:5
QuadTree description (API)
Definition: QuadTree.h:35
GenericCollection< Component * > Components
Definition: Components.h:27
@@ -112,7 +114,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Cells_8h_source.html b/hurricane/doc/hurricane/html/Cells_8h_source.html
index 1c817db5..b15dc88b 100644
--- a/hurricane/doc/hurricane/html/Cells_8h_source.html
+++ b/hurricane/doc/hurricane/html/Cells_8h_source.html
@@ -57,7 +57,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Collection_8h_source.html b/hurricane/doc/hurricane/html/Collection_8h_source.html
index 6ceaacd2..b9971d87 100644
--- a/hurricane/doc/hurricane/html/Collection_8h_source.html
+++ b/hurricane/doc/hurricane/html/Collection_8h_source.html
@@ -76,7 +76,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Commons_8h_source.html b/hurricane/doc/hurricane/html/Commons_8h_source.html
index 7db56f32..e4c12e6a 100644
--- a/hurricane/doc/hurricane/html/Commons_8h_source.html
+++ b/hurricane/doc/hurricane/html/Commons_8h_source.html
@@ -63,7 +63,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Component_8h_source.html b/hurricane/doc/hurricane/html/Component_8h_source.html
index 74ff4473..c74f14f9 100644
--- a/hurricane/doc/hurricane/html/Component_8h_source.html
+++ b/hurricane/doc/hurricane/html/Component_8h_source.html
@@ -76,7 +76,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Components_8h_source.html b/hurricane/doc/hurricane/html/Components_8h_source.html
index cab03c9d..e95a1891 100644
--- a/hurricane/doc/hurricane/html/Components_8h_source.html
+++ b/hurricane/doc/hurricane/html/Components_8h_source.html
@@ -57,7 +57,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/ContactLayer_8h_source.html b/hurricane/doc/hurricane/html/ContactLayer_8h_source.html
index 5fb7e559..e03a9487 100644
--- a/hurricane/doc/hurricane/html/ContactLayer_8h_source.html
+++ b/hurricane/doc/hurricane/html/ContactLayer_8h_source.html
@@ -59,7 +59,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Contact_8h_source.html b/hurricane/doc/hurricane/html/Contact_8h_source.html
index 29af1af7..3677951c 100644
--- a/hurricane/doc/hurricane/html/Contact_8h_source.html
+++ b/hurricane/doc/hurricane/html/Contact_8h_source.html
@@ -81,7 +81,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Contacts_8h_source.html b/hurricane/doc/hurricane/html/Contacts_8h_source.html
index dc75c463..ad0b9302 100644
--- a/hurricane/doc/hurricane/html/Contacts_8h_source.html
+++ b/hurricane/doc/hurricane/html/Contacts_8h_source.html
@@ -57,7 +57,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/DBo_8h_source.html b/hurricane/doc/hurricane/html/DBo_8h_source.html
index aa6131bf..8b00ff62 100644
--- a/hurricane/doc/hurricane/html/DBo_8h_source.html
+++ b/hurricane/doc/hurricane/html/DBo_8h_source.html
@@ -61,7 +61,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/DBos_8h_source.html b/hurricane/doc/hurricane/html/DBos_8h_source.html
index 045e2398..24a70651 100644
--- a/hurricane/doc/hurricane/html/DBos_8h_source.html
+++ b/hurricane/doc/hurricane/html/DBos_8h_source.html
@@ -57,7 +57,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/DataBase_8h_source.html b/hurricane/doc/hurricane/html/DataBase_8h_source.html
index 6083619c..b6b42361 100644
--- a/hurricane/doc/hurricane/html/DataBase_8h_source.html
+++ b/hurricane/doc/hurricane/html/DataBase_8h_source.html
@@ -59,7 +59,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/DbU_8h_source.html b/hurricane/doc/hurricane/html/DbU_8h_source.html
index 24de6f41..df727ea6 100644
--- a/hurricane/doc/hurricane/html/DbU_8h_source.html
+++ b/hurricane/doc/hurricane/html/DbU_8h_source.html
@@ -98,7 +98,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/DebugSession_8h_source.html b/hurricane/doc/hurricane/html/DebugSession_8h_source.html
index 554efac9..4bb7f636 100644
--- a/hurricane/doc/hurricane/html/DebugSession_8h_source.html
+++ b/hurricane/doc/hurricane/html/DebugSession_8h_source.html
@@ -62,7 +62,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Diagonal_8h_source.html b/hurricane/doc/hurricane/html/Diagonal_8h_source.html
index 84c68ca7..8a313b36 100644
--- a/hurricane/doc/hurricane/html/Diagonal_8h_source.html
+++ b/hurricane/doc/hurricane/html/Diagonal_8h_source.html
@@ -62,7 +62,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/DiffusionLayer_8h_source.html b/hurricane/doc/hurricane/html/DiffusionLayer_8h_source.html
index b1ec678e..8364e474 100644
--- a/hurricane/doc/hurricane/html/DiffusionLayer_8h_source.html
+++ b/hurricane/doc/hurricane/html/DiffusionLayer_8h_source.html
@@ -59,7 +59,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Entities_8h_source.html b/hurricane/doc/hurricane/html/Entities_8h_source.html
index cda4af08..cd1e0251 100644
--- a/hurricane/doc/hurricane/html/Entities_8h_source.html
+++ b/hurricane/doc/hurricane/html/Entities_8h_source.html
@@ -57,7 +57,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Entity_8h_source.html b/hurricane/doc/hurricane/html/Entity_8h_source.html
index 1aa30286..47090495 100644
--- a/hurricane/doc/hurricane/html/Entity_8h_source.html
+++ b/hurricane/doc/hurricane/html/Entity_8h_source.html
@@ -59,7 +59,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Error_8h_source.html b/hurricane/doc/hurricane/html/Error_8h_source.html
index 8bf06491..41fe8ace 100644
--- a/hurricane/doc/hurricane/html/Error_8h_source.html
+++ b/hurricane/doc/hurricane/html/Error_8h_source.html
@@ -57,7 +57,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Exception_8h_source.html b/hurricane/doc/hurricane/html/Exception_8h_source.html
index bc7dcab9..5c8268aa 100644
--- a/hurricane/doc/hurricane/html/Exception_8h_source.html
+++ b/hurricane/doc/hurricane/html/Exception_8h_source.html
@@ -56,7 +56,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Filter_8h_source.html b/hurricane/doc/hurricane/html/Filter_8h_source.html
index a4778c45..c1e7f9b9 100644
--- a/hurricane/doc/hurricane/html/Filter_8h_source.html
+++ b/hurricane/doc/hurricane/html/Filter_8h_source.html
@@ -61,7 +61,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Go_8h_source.html b/hurricane/doc/hurricane/html/Go_8h_source.html
index b7812075..209aaa74 100644
--- a/hurricane/doc/hurricane/html/Go_8h_source.html
+++ b/hurricane/doc/hurricane/html/Go_8h_source.html
@@ -63,7 +63,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Gos_8h_source.html b/hurricane/doc/hurricane/html/Gos_8h_source.html
index b1430960..fc95724d 100644
--- a/hurricane/doc/hurricane/html/Gos_8h_source.html
+++ b/hurricane/doc/hurricane/html/Gos_8h_source.html
@@ -57,7 +57,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Hook_8h_source.html b/hurricane/doc/hurricane/html/Hook_8h_source.html
index c0b64373..8d49e366 100644
--- a/hurricane/doc/hurricane/html/Hook_8h_source.html
+++ b/hurricane/doc/hurricane/html/Hook_8h_source.html
@@ -67,7 +67,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Hooks_8h_source.html b/hurricane/doc/hurricane/html/Hooks_8h_source.html
index ed9a0472..3a1309aa 100644
--- a/hurricane/doc/hurricane/html/Hooks_8h_source.html
+++ b/hurricane/doc/hurricane/html/Hooks_8h_source.html
@@ -57,7 +57,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Horizontal_8h_source.html b/hurricane/doc/hurricane/html/Horizontal_8h_source.html
index 42d7b985..925bf6b9 100644
--- a/hurricane/doc/hurricane/html/Horizontal_8h_source.html
+++ b/hurricane/doc/hurricane/html/Horizontal_8h_source.html
@@ -65,7 +65,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Horizontals_8h_source.html b/hurricane/doc/hurricane/html/Horizontals_8h_source.html
index 6fb48f8b..c51e94ed 100644
--- a/hurricane/doc/hurricane/html/Horizontals_8h_source.html
+++ b/hurricane/doc/hurricane/html/Horizontals_8h_source.html
@@ -57,7 +57,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/HyperNet_8h_source.html b/hurricane/doc/hurricane/html/HyperNet_8h_source.html
index c1337d25..d4cddd28 100644
--- a/hurricane/doc/hurricane/html/HyperNet_8h_source.html
+++ b/hurricane/doc/hurricane/html/HyperNet_8h_source.html
@@ -63,7 +63,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Initializer_8h_source.html b/hurricane/doc/hurricane/html/Initializer_8h_source.html
index 1904e888..452d5283 100644
--- a/hurricane/doc/hurricane/html/Initializer_8h_source.html
+++ b/hurricane/doc/hurricane/html/Initializer_8h_source.html
@@ -52,7 +52,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Instance_8h_source.html b/hurricane/doc/hurricane/html/Instance_8h_source.html
index 430f4594..359e70ca 100644
--- a/hurricane/doc/hurricane/html/Instance_8h_source.html
+++ b/hurricane/doc/hurricane/html/Instance_8h_source.html
@@ -86,7 +86,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Instances_8h_source.html b/hurricane/doc/hurricane/html/Instances_8h_source.html
index 55b3ecd8..3630d0ed 100644
--- a/hurricane/doc/hurricane/html/Instances_8h_source.html
+++ b/hurricane/doc/hurricane/html/Instances_8h_source.html
@@ -57,7 +57,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Interruption_8h_source.html b/hurricane/doc/hurricane/html/Interruption_8h_source.html
index 845ef036..8849983e 100644
--- a/hurricane/doc/hurricane/html/Interruption_8h_source.html
+++ b/hurricane/doc/hurricane/html/Interruption_8h_source.html
@@ -55,7 +55,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Interval_8h_source.html b/hurricane/doc/hurricane/html/Interval_8h_source.html
index 2b73585d..74eea0d4 100644
--- a/hurricane/doc/hurricane/html/Interval_8h_source.html
+++ b/hurricane/doc/hurricane/html/Interval_8h_source.html
@@ -72,7 +72,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Intervals_8h_source.html b/hurricane/doc/hurricane/html/Intervals_8h_source.html
index 2e24d84e..e8552502 100644
--- a/hurricane/doc/hurricane/html/Intervals_8h_source.html
+++ b/hurricane/doc/hurricane/html/Intervals_8h_source.html
@@ -50,7 +50,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/JsonObject_8h_source.html b/hurricane/doc/hurricane/html/JsonObject_8h_source.html
index 53eb3794..4a62db5c 100644
--- a/hurricane/doc/hurricane/html/JsonObject_8h_source.html
+++ b/hurricane/doc/hurricane/html/JsonObject_8h_source.html
@@ -92,7 +92,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/JsonReader_8h_source.html b/hurricane/doc/hurricane/html/JsonReader_8h_source.html
index e2b8deaa..5b3fac3e 100644
--- a/hurricane/doc/hurricane/html/JsonReader_8h_source.html
+++ b/hurricane/doc/hurricane/html/JsonReader_8h_source.html
@@ -50,7 +50,7 @@ $(function() {
diff --git a/hurricane/doc/hurricane/html/Layer_8h_source.html b/hurricane/doc/hurricane/html/Layer_8h_source.html
index ee4ae742..9b691d4b 100644
--- a/hurricane/doc/hurricane/html/Layer_8h_source.html
+++ b/hurricane/doc/hurricane/html/Layer_8h_source.html
@@ -44,11 +44,11 @@ $(function() {
Layer.h