AIML experimental plugins
Change-Id: I7069f44d046099fc10997449afcebe54d0d697db
Signed-off-by: Shuai Li <shuai.li@cea.fr>
diff --git a/aiml/org.eclipse.papyrus.aiml.examples/.classpath b/aiml/org.eclipse.papyrus.aiml.examples/.classpath
new file mode 100644
index 0000000..43b9862
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.examples/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/aiml/org.eclipse.papyrus.aiml.examples/.project b/aiml/org.eclipse.papyrus.aiml.examples/.project
new file mode 100644
index 0000000..2941c7b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.examples/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.aiml.examples</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/aiml/org.eclipse.papyrus.aiml.examples/.settings/org.eclipse.jdt.core.prefs b/aiml/org.eclipse.papyrus.aiml.examples/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0fee6a9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.examples/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,15 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/aiml/org.eclipse.papyrus.aiml.examples/META-INF/MANIFEST.MF b/aiml/org.eclipse.papyrus.aiml.examples/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..2e3bdbc
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.examples/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.emf.common.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.uml2.uml;bundle-version="5.0.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 0.7.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.aiml.examples.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.aiml.examples;singleton:=true
+Automatic-Module-Name: org.eclipse.papyrus.aiml.examples
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.papyrus.aiml.examples
diff --git a/aiml/org.eclipse.papyrus.aiml.examples/build.properties b/aiml/org.eclipse.papyrus.aiml.examples/build.properties
new file mode 100644
index 0000000..83dd377
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.examples/build.properties
@@ -0,0 +1,9 @@
+source.. = src/,\
+ src-gen/
+output.. = target/classes/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ models/,\
+ plugin.properties
+src.includes = models/
diff --git a/aiml/org.eclipse.papyrus.aiml.examples/models/kerasmodel.di b/aiml/org.eclipse.papyrus.aiml.examples/models/kerasmodel.di
new file mode 100644
index 0000000..8c549ee
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.examples/models/kerasmodel.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.infra.services.edit.TypeContext"/>
diff --git a/aiml/org.eclipse.papyrus.aiml.examples/models/kerasmodel.notation b/aiml/org.eclipse.papyrus.aiml.examples/models/kerasmodel.notation
new file mode 100644
index 0000000..baee8e9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.examples/models/kerasmodel.notation
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.3/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_uO7LoJwiEeqtcKkMgfhA1A" type="PapyrusUMLClassDiagram" name="NewClassDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_wki_MJwiEeqtcKkMgfhA1A" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wkmCgJwiEeqtcKkMgfhA1A" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wkmCgZwiEeqtcKkMgfhA1A" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wkmpkJwiEeqtcKkMgfhA1A" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wknQoJwiEeqtcKkMgfhA1A" type="Class_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wknQoZwiEeqtcKkMgfhA1A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wknQopwiEeqtcKkMgfhA1A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wknQo5wiEeqtcKkMgfhA1A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wknQpJwiEeqtcKkMgfhA1A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wknQpZwiEeqtcKkMgfhA1A" type="Class_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wknQppwiEeqtcKkMgfhA1A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wknQp5wiEeqtcKkMgfhA1A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wknQqJwiEeqtcKkMgfhA1A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wknQqZwiEeqtcKkMgfhA1A"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wknQqpwiEeqtcKkMgfhA1A" visible="false" type="Class_NestedClassifierCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wknQq5wiEeqtcKkMgfhA1A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wknQrJwiEeqtcKkMgfhA1A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wknQrZwiEeqtcKkMgfhA1A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wknQrpwiEeqtcKkMgfhA1A"/>
+ </children>
+ <element xmi:type="uml:Class" href="kerasmodel.uml#_wkcRgJwiEeqtcKkMgfhA1A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wki_MZwiEeqtcKkMgfhA1A" x="240" y="80" width="181" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2ppb5LMxEeqmquzwsvk0ug" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2ppb5bMxEeqmquzwsvk0ug"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_2ppb57MxEeqmquzwsvk0ug" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="kerasmodel.uml#_wkcRgJwiEeqtcKkMgfhA1A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2ppb5rMxEeqmquzwsvk0ug" x="440" y="80"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_uO7LoZwiEeqtcKkMgfhA1A" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_uO7LopwiEeqtcKkMgfhA1A"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_uO7Lo5wiEeqtcKkMgfhA1A" diagramKindId="org.eclipse.papyrus.uml.diagram.class">
+ <owner xmi:type="uml:Model" href="kerasmodel.uml#_sfXSgJwiEeqtcKkMgfhA1A"/>
+ </styles>
+ <element xmi:type="uml:Model" href="kerasmodel.uml#_sfXSgJwiEeqtcKkMgfhA1A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_2ppb6LMxEeqmquzwsvk0ug" type="StereotypeCommentLink" source="_wki_MJwiEeqtcKkMgfhA1A" target="_2ppb5LMxEeqmquzwsvk0ug">
+ <styles xmi:type="notation:FontStyle" xmi:id="_2ppb6bMxEeqmquzwsvk0ug"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_2pqC8rMxEeqmquzwsvk0ug" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="kerasmodel.uml#_wkcRgJwiEeqtcKkMgfhA1A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2ppb6rMxEeqmquzwsvk0ug" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2pqC8LMxEeqmquzwsvk0ug"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2pqC8bMxEeqmquzwsvk0ug"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_fUr44LM3Eeqmquzwsvk0ug" type="CompositeStructure" name="Composite" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_gCKC4LM3Eeqmquzwsvk0ug" type="Class_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gCLRALM3Eeqmquzwsvk0ug" type="Class_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_gCLRAbM3Eeqmquzwsvk0ug" type="Class_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gCLRArM3Eeqmquzwsvk0ug" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gCL4ELM3Eeqmquzwsvk0ug" type="Class_StructureCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_lIAiYLM3Eeqmquzwsvk0ug" type="Property_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lIAiYrM3Eeqmquzwsvk0ug" type="Property_NameLabel"/>
+ <children xmi:type="notation:DecorationNode" xmi:id="_lIAiY7M3Eeqmquzwsvk0ug" type="Property_FloatingNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lIAiZLM3Eeqmquzwsvk0ug" y="15"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lIAiZbM3Eeqmquzwsvk0ug" type="Property_StructureCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lIAiZrM3Eeqmquzwsvk0ug"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lIAiZ7M3Eeqmquzwsvk0ug"/>
+ </children>
+ <element xmi:type="uml:Property" href="kerasmodel.uml#_lH08MLM3Eeqmquzwsvk0ug"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lIAiYbM3Eeqmquzwsvk0ug" x="57" y="57" height="61"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gCL4EbM3Eeqmquzwsvk0ug"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gCL4ErM3Eeqmquzwsvk0ug"/>
+ </children>
+ <element xmi:type="uml:Class" href="kerasmodel.uml#_wkcRgJwiEeqtcKkMgfhA1A"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gCKC4bM3Eeqmquzwsvk0ug" x="77" y="40" width="564" height="321"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gCRXpbM3Eeqmquzwsvk0ug" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gCRXprM3Eeqmquzwsvk0ug"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gCRXqLM3Eeqmquzwsvk0ug" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="kerasmodel.uml#_wkcRgJwiEeqtcKkMgfhA1A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gCRXp7M3Eeqmquzwsvk0ug" x="200"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_fUr44bM3Eeqmquzwsvk0ug" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_fUr44rM3Eeqmquzwsvk0ug"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_fUr447M3Eeqmquzwsvk0ug" diagramKindId="org.eclipse.papyrus.uml.diagram.compositeStructure.root.package">
+ <owner xmi:type="uml:Model" href="kerasmodel.uml#_sfXSgJwiEeqtcKkMgfhA1A"/>
+ </styles>
+ <element xmi:type="uml:Model" href="kerasmodel.uml#_sfXSgJwiEeqtcKkMgfhA1A"/>
+ <edges xmi:type="notation:Connector" xmi:id="_gCR-sLM3Eeqmquzwsvk0ug" type="StereotypeCommentLink" source="_gCKC4LM3Eeqmquzwsvk0ug" target="_gCRXpbM3Eeqmquzwsvk0ug">
+ <styles xmi:type="notation:FontStyle" xmi:id="_gCR-sbM3Eeqmquzwsvk0ug"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_gCR-tbM3Eeqmquzwsvk0ug" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="kerasmodel.uml#_wkcRgJwiEeqtcKkMgfhA1A"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCR-srM3Eeqmquzwsvk0ug" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gCR-s7M3Eeqmquzwsvk0ug"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gCR-tLM3Eeqmquzwsvk0ug"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/aiml/org.eclipse.papyrus.aiml.examples/models/kerasmodel.uml b/aiml/org.eclipse.papyrus.aiml.examples/models/kerasmodel.uml
new file mode 100644
index 0000000..77b7b85
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.examples/models/kerasmodel.uml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:AIML.Convolution_layers="http://www.eclipse.org/papyrus/AIML/convolution/1" xmlns:AIML.Module="http://www.eclipse.org/papyrus/AIML/module/1" xmlns:Codegen="http://www.eclipse.org/papyrus/Codegen/1" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/AIML/convolution/1 http://www.eclipse.org/papyrus/AIML/1#//Convolution_layers http://www.eclipse.org/papyrus/AIML/module/1 http://www.eclipse.org/papyrus/AIML/1#//Module">
+ <uml:Model xmi:id="_sfXSgJwiEeqtcKkMgfhA1A" name="kerasmodel">
+ <packagedElement xmi:type="uml:Class" xmi:id="_wkcRgJwiEeqtcKkMgfhA1A" name="TestModule">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_lH08MLM3Eeqmquzwsvk0ug" name="l1" visibility="public" type="_iaXQYLM3Eeqmquzwsvk0ug"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_KvaJkJwjEeqtcKkMgfhA1A" name="python"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_iaXQYLM3Eeqmquzwsvk0ug" name="Layer1"/>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9PGM8J6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PHbEJ6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9PICIJ6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PICIZ6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//Module"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_u1dx8JT1Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9PIpMJ6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PIpMZ6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//Tensor"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_38DjAJT1Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9PJQQJ6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PJQQZ6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//Pooling_layers"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_Deu8AJT2Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9PJ3UJ6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PJ3UZ6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//Convolution_layers"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_Nr2NYJOPEeqnY_bZg2Ebjg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9PKeYJ6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PKeYZ6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//Padding_layers"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_2_xEcJT2Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9PLFcJ6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PLFcZ6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//NonLinearActivations"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_H7fbMJT2Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9PLFcp6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PLsgJ6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//SoftMinMaxActivations"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_K1H6wJT2Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9PLsgZ6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PLsgp6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//Normalization_layers"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_N5zMsJT2Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9PLsg56YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PMTkJ6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//Recurrent_layers"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_RAjiQJT2Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9PMTkZ6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PMTkp6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//Transformer_layers"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_T8DDAJT2Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9PMTk56YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PM6oJ6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//Linear_layers"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_WwqfsJT2Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9PM6oZ6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PNhsJ6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//Dropout_layers"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_ZUMzcJT2Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9PNhsZ6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PNhsp6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//Sparse_layers"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_cKwJ0JT2Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9POIwJ6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9POIwZ6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//Distance_functions"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_fjUoIJT2Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9POIwp6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9POIw56YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//Loss_functions"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_nZcP0JT2Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9POv0J6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9POv0Z6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//Vision_layers"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_q6FsEJT2Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_9POv0p6YEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9PPW4J6YEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/AIML/1#//DataParallel_layers"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://AIML_PROFILES/AIML.profile.uml#_wBUroJT2Eeq5BK6mmo2rWg"/>
+ </profileApplication>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_WcUqYJ6ZEeqMUqJDUIBTbw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WcVRcJ6ZEeqMUqJDUIBTbw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/Codegen/1#/"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://Codegen_PROFILES/Codegen.profile.uml#_fPDsIBa-EearhdjjJ6cVzQ"/>
+ </profileApplication>
+ </uml:Model>
+ <Codegen:GeneratorHint xmi:id="_ggzKkJ6aEeqMUqJDUIBTbw" base_Element="_sfXSgJwiEeqtcKkMgfhA1A" language="_Q3RmYLMyEeqmquzwsvk0ug" generatorID="Keras"/>
+ <AIML.Module:Default_Container xmi:id="_2pbZcLMxEeqmquzwsvk0ug" base_Class="_wkcRgJwiEeqtcKkMgfhA1A"/>
+ <Codegen:Language xmi:id="_Q3RmYLMyEeqmquzwsvk0ug" base_Class="_KvaJkJwjEeqtcKkMgfhA1A"/>
+ <AIML.Convolution_layers:Conv1d xmi:id="_t2TIMLM3Eeqmquzwsvk0ug" base_Class="_iaXQYLM3Eeqmquzwsvk0ug"/>
+</xmi:XMI>
diff --git a/aiml/org.eclipse.papyrus.aiml.examples/plugin.properties b/aiml/org.eclipse.papyrus.aiml.examples/plugin.properties
new file mode 100644
index 0000000..5c6ffe7
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.examples/plugin.properties
@@ -0,0 +1,10 @@
+# Copyright (c) CEA LIST.
+#
+# This program and the accompanying materials are made
+# available under the terms of the Eclipse Public License 2.0
+# which is available at https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+pluginName=Papyrus AIML examples
+providerName=Eclipse Modeling Project
diff --git a/aiml/org.eclipse.papyrus.aiml.examples/plugin.xml b/aiml/org.eclipse.papyrus.aiml.examples/plugin.xml
new file mode 100644
index 0000000..048525f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.examples/plugin.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.emf.common.ui.examples">
+ <example
+ id="org.eclipse.papyrus.aiml.examples.kerasmodel"
+ wizardID="org.eclipse.papyrus.aiml.example">
+ <projectDescriptor
+ contentURI="models/"
+ description="AIML model example for Keras"
+ name="AIML Keras Model">
+ </projectDescriptor>
+ <fileToOpen
+ location="models/kerasmodel.di">
+ </fileToOpen>
+ </example>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.eclipse.ui.Examples/org.eclipse.papyrus.examples"
+ class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
+ finalPerspective="org.eclipse.papyrus.infra.core.perspective"
+ id="org.eclipse.papyrus.aiml.example"
+ name="AIML Examples"
+ preferredPerspectives="org.eclipse.papyrus.infra.core.perspective"
+ project="true">
+ <description>
+ Create a new Project that contains an example for AI Modeling based on Keras
+ </description>
+ </wizard>
+ </extension>
+</plugin>
diff --git a/aiml/org.eclipse.papyrus.aiml.examples/src/org/eclipse/papyrus/aiml/examples/Activator.java b/aiml/org.eclipse.papyrus.aiml.examples/src/org/eclipse/papyrus/aiml/examples/Activator.java
new file mode 100644
index 0000000..835d0eb
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.examples/src/org/eclipse/papyrus/aiml/examples/Activator.java
@@ -0,0 +1,38 @@
+/**
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+package org.eclipse.papyrus.aiml.examples;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ }
+
+}
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/.classpath b/aiml/org.eclipse.papyrus.aiml.gen.keras/.classpath
new file mode 100644
index 0000000..2f5ffb2
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="xtend-gen"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/.project b/aiml/org.eclipse.papyrus.aiml.gen.keras/.project
new file mode 100644
index 0000000..7e976c4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/.project
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.aiml.gen.keras</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ </natures>
+</projectDescription>
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/.settings/org.eclipse.jdt.core.prefs b/aiml/org.eclipse.papyrus.aiml.gen.keras/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0fee6a9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,15 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/META-INF/MANIFEST.MF b/aiml/org.eclipse.papyrus.aiml.gen.keras/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..f47ce9f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.uml2.types;visibility:=reexport,
+ org.eclipse.uml2.uml;bundle-version="5.0.0";visibility:=reexport,
+ org.eclipse.papyrus.uml.properties;bundle-version="3.0.0",
+ org.eclipse.papyrus.aiml.profile;bundle-version="0.7.0",
+ org.eclipse.xtend.lib;bundle-version="2.2.0",
+ org.eclipse.papyrus.designer.languages.common.base;bundle-version="1.1.0",
+ org.eclipse.papyrus.designer.languages.common.extensionpoints;bundle-version="1.1.0",
+ org.eclipse.papyrus.designer.languages.common.profile;bundle-version="1.1.0"
+Export-Package: org.eclipse.papyrus.aiml.gen.keras
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 0.7.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.aiml.gen.keras.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.aiml.gen.keras;singleton:=true
+Automatic-Module-Name: org.eclipse.papyrus.designer.languages.cpp.profile
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/build.properties b/aiml/org.eclipse.papyrus.aiml.gen.keras/build.properties
new file mode 100644
index 0000000..536f80e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/build.properties
@@ -0,0 +1,10 @@
+source.. = src/,\
+ src-gen/
+output.. = target/classes/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ profiles/,\
+ libraries/,\
+ plugin.properties,\
+ properties/
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/plugin.properties b/aiml/org.eclipse.papyrus.aiml.gen.keras/plugin.properties
new file mode 100644
index 0000000..4f00e9e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/plugin.properties
@@ -0,0 +1,10 @@
+# Copyright (c) CEA LIST.
+#
+# This program and the accompanying materials are made
+# available under the terms of the Eclipse Public License 2.0
+# which is available at https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+pluginName=Papyrus AIML profile
+providerName=Eclipse Modeling Project
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/plugin.xml b/aiml/org.eclipse.papyrus.aiml.gen.keras/plugin.xml
new file mode 100644
index 0000000..e18fff1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/plugin.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.papyrus.designer.languages.common.extensionpoints.languageCodegen">
+ <generator
+ id="Keras"
+ class="org.eclipse.papyrus.aiml.gen.keras.KerasLangCodegen"
+ language="python">
+ </generator>
+ </extension>
+</plugin>
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/Activator.java b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/Activator.java
new file mode 100644
index 0000000..1bd4ef5
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/Activator.java
@@ -0,0 +1,42 @@
+/**
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+package org.eclipse.papyrus.aiml.gen.keras;
+
+import org.eclipse.papyrus.infra.core.log.LogHelper;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ private static BundleContext context;
+
+ public static LogHelper log;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ log = new LogHelper(context.getBundle());
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ }
+
+}
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/GenCheck.xtend b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/GenCheck.xtend
new file mode 100644
index 0000000..92899d9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/GenCheck.xtend
@@ -0,0 +1,102 @@
+package org.eclipse.papyrus.aiml.gen.keras
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+import java.util.HashSet
+import org.eclipse.jface.dialogs.MessageDialog
+import org.eclipse.swt.widgets.Display
+
+class GenCheck {
+ /**
+ * return true if Null for each type
+ */
+ static def isNull(Object value) {
+ return value === null
+ }
+
+ /**
+ * return true if Null for each type
+ */
+ static def isFalseBoolean(Boolean value) {
+ return value.booleanValue === Boolean.FALSE
+ }
+ /**
+ * return true if Null or string value is empty
+ */
+ static def isNullOrEmptyForString(String value) {
+ return value === null || value.length == 0 || value === "null"
+ }
+
+ static def isZeroForString(String value) {
+ return value === "0.0" || value ==="0"
+ }
+
+ static def isZeroForStringL(String value) {
+ return value.equals("0.0") || value.equals("0")
+ }
+ /**
+ * return true if string value is equal to false
+ */
+ static def isFalseForString(String value) {
+ return value !== null && value.equals("false")
+ }
+
+ /**
+ * collect the number of layers in the model
+ */
+ static def findNbrOfLayer(Model l) {
+ var nbr_lay = 0
+ for (layer : l.base_Class.ownedAttributes) {
+ l.getClass().getSimpleName()
+ nbr_lay = nbr_lay + 1
+ }
+ return nbr_lay
+ }
+
+ static def findNbrOfInformationFLowPara(Model l) {
+ var nbrInformationFlowFinal = 0
+ var nbrInformationFlowByLayer = 0
+
+ for (layer : l.base_Class.ownedAttributes) {
+
+ nbrInformationFlowByLayer=layer.getTargetDirectedRelationships().length
+
+ if (nbrInformationFlowByLayer>nbrInformationFlowFinal){
+ nbrInformationFlowFinal=nbrInformationFlowByLayer
+ }
+
+ }
+
+ if (nbrInformationFlowFinal>1){
+ MessageDialog.openWarning(Display.current.activeShell, "Warning Message : InformationFlow ",
+ "NOT SUPPORTED : InformationFLow parallelization (Double entry) ");
+
+ return 0
+
+ } else {
+ return 1
+ }
+
+ }
+
+ static def findNbrOfInformationFLowMissing(ModuleInfo mi) {
+
+ System.err.println("module info list : " + mi.layersInput.toList)
+
+ var HashSet hs = new HashSet<String>();
+ hs.addAll(mi.layersInput.toList);
+ var int totalDuplicates = mi.layersInput.toList.size() - hs.size();
+
+ //MessageDialog.openWarning(Display.current.activeShell, "sdfsd", "warning ...");
+ //Activator.log.info("sdfsd");
+
+ if (totalDuplicates !== 0) {
+ MessageDialog.openWarning(Display.current.activeShell, "Warning Message : InformationFlow ",
+ "NOT SUPPORTED : Missing InformationFlow Connection");
+ return 0
+
+ } else {
+ return 1
+ }
+ }
+}
+
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/GenKeras.xtend b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/GenKeras.xtend
new file mode 100644
index 0000000..405f0d9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/GenKeras.xtend
@@ -0,0 +1,197 @@
+/*******************************************************************************
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse License 2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Abhishek Djeachandrane - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.aiml.gen.keras;
+
+import org.eclipse.uml2.uml.Class;
+import static extension org.eclipse.uml2.uml.util.UMLUtil.getStereotypeApplication
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.LSTM
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.GRU
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear
+import org.eclipse.papyrus.aiml.gen.keras.ModelOps;
+
+
+class GenKeras {
+ static def genKeras(Class clazz) {
+ val module = clazz.getStereotypeApplication(Model)
+ if (module !== null) {
+ return module.genModule
+ } else {
+ return "";
+ }
+ }
+ /**
+ * Generate a model with different elements necessary for the compilation
+ */
+ static def genModule(Model module) '''
+ «module.genDefaultTemplate»
+
+ «module.genModuleInit»
+
+ «module.genModuleCall»
+
+ «module.genModuleCompilation»
+
+
+
+
+
+ '''
+
+ /**
+ * Generate the model instance and compilation
+ */
+ static def genModuleCompilation(Model module) '''
+ «module.base_Class.name.toFirstLower» = «module.base_Class.name»()
+ ««««»«ModelOps.modelAttributesToDisplayForCompilation(module)»
+ «var study=ModelOps.modelAttributesToCollectProperly(module)»
+ «study.attributesName.toList»
+ «study.attributesValue.toList»
+ «study.attributesType.toList»
+ «FOR n : study.attributesValue.toList»
+
+ «ENDFOR»
+ «var study2=ModelOps.modelAttributesToDisplayForCompilationProperly(module)»
+ «study2»
+ '''
+ /**
+ * Generate the basic template with importation in the head of the code
+ */
+ static def genDefaultTemplate(Model module) '''
+ # generated by Papyrus from module «module.base_Class.class»
+
+ import tensorflow as tf
+ from tensorflow import keras
+ inputs=[(1,2),(3,4)]
+ '''
+
+ /**
+ * Generate layer instance through modeling
+ */
+ static def genModuleInit(Model module) '''
+ class «module.base_Class.name»(tf.keras.Model):
+ def __init__(self):
+ super(MyModel, self).__init__()
+
+ «FOR layer : module.base_Class.ownedAttributes»
+ «val type = layer.type»
+ «val layerSt = type.getStereotypeApplication(Model)»
+ «genLayer(layerSt)»
+ «ENDFOR»
+ «FOR connector : module.base_Class.ownedConnectors»
+ «ENDFOR»
+ '''
+
+
+ /**
+ * Generate the code which consist to determine the data flow between layers
+ * @param l the model ...
+ */
+ static def genModuleCall(Model module) '''
+ def call(self, inputs):
+
+ «var nbr_lay = GenCheck.findNbrOfLayer(module)»
+ «var unsortedInformationFlowList = ModelOps.genInputOutputLayerArrayWithFlow(nbr_lay,module)»
+
+ «IF unsortedInformationFlowList instanceof ModuleInfo»
+ «var sortedInformationFlowList = ModelOps.genFlowOrder(nbr_lay, unsortedInformationFlowList)»
+ «FOR layer :sortedInformationFlowList.toList»
+ «var inputs = sortedInformationFlowList.toList.indexOf(layer)-1»
+ «IF inputs<0»
+ x«sortedInformationFlowList.toList.indexOf(layer)» = self.«layer»(input)
+ «ELSEIF inputs>=0 && inputs<sortedInformationFlowList.length-2»
+ x«sortedInformationFlowList.toList.indexOf(layer)» = self.«layer»(x«inputs»)
+ «ELSEIF inputs==sortedInformationFlowList.length-2»
+ output = self.«layer»(x«inputs»)
+ «ENDIF»
+ «ENDFOR»
+ «ENDIF»
+ return output
+ '''
+
+ /**
+ * Generate each layer according to the model
+ */
+ static def genLayer(Model layer) {
+ if (layer instanceof Convolution_layers) {
+ genConvolutionLayer(layer as Convolution_layers)
+ } else if (layer instanceof Recurrent_layers) {
+ genRecurrentLayer(layer as Recurrent_layers)
+ } else if (layer instanceof Linear_layers) {
+ genLinearLayer(layer as Linear_layers)
+ }
+ }
+ /**
+ * Generate each convolution layer according to the model
+ */
+ static def genConvolutionLayer(Convolution_layers convolutionLayer) '''
+ '''
+ /**
+ * Generate each linear layer according to the model
+ */
+ static def genLinearLayer(Linear_layers linearLayer) {
+ if (linearLayer instanceof Linear) {
+ genDense(linearLayer as Linear)
+ }
+ }
+ /**
+ * Generate each recurrent layer according to the model
+ */
+ static def genRecurrentLayer(Recurrent_layers recurrentLayer) {
+ if (recurrentLayer instanceof LSTM) {
+ genLstm(recurrentLayer as LSTM)
+ } else if (recurrentLayer instanceof GRU) {
+ genGru(recurrentLayer as GRU)
+ }
+ }
+ /**
+ * Generate each dense layer according to the model
+ */
+ static def genDense(Linear denseLayer) '''
+ self.«denseLayer.base_Class.name»=tf.keras.layers.Dense(«denseLayer.in_features»)
+ '''
+ /**
+ * Generate each LSTM layer according to the model
+ */
+ static def genLstm(LSTM lstmLayer) '''
+ «««»»«IF lstmLayer.return_sequences.equals(true)»
+ «««self.«lstmLayer.base_Class.name»=tf.keras.layers.«lstmLayer.eClass.name»(«lstmLayer.hidden_size»,input_shape=[«lstmLayer.input_size»],return_sequences=True)
+ ««««»»«ELSEIF lstmLayer.return_sequences.equals(false)»
+ ««««self.«lstmLayer.base_Class.name»=tf.keras.layers.«lstmLayer.eClass.name»(«lstmLayer.hidden_size»,input_shape=[«lstmLayer.input_size»],return_sequences=False)
+ ««««»»«ENDIF»
+ «var tt = RecurrentLayerOps.lstmAttributesToDisplay(lstmLayer)»
+ «tt»
+ '''
+ /**
+ * Generate each GRU layer according to the model
+ */
+ static def genGru(GRU gruLayer) '''
+ «««»»«gruLayer.eClass.name»
+ «««»«gruLayer.input_size»
+ «var tt = RecurrentLayerOps.lstmAttributesToDisplay(gruLayer)»
+ «tt»
+ '''
+ /**
+ * Generate each tensor according to the model
+ */
+ static def genTensor(Tensor tensor) '''
+ tensor ...
+ '''
+
+}
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/KerasLangCodegen.java b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/KerasLangCodegen.java
new file mode 100644
index 0000000..a710c8f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/KerasLangCodegen.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2020 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * CEA LIST - ansgar.radermacher@cea.fr initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.aiml.gen.keras;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.papyrus.aiml.gen.keras.transformation.KerasModelElementsCreator;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Default_Container;
+import org.eclipse.papyrus.designer.languages.common.base.ModelElementsCreator;
+import org.eclipse.papyrus.designer.languages.common.extensionpoints.ILangCodegen2;
+import org.eclipse.papyrus.designer.languages.common.extensionpoints.MethodInfo;
+import org.eclipse.papyrus.designer.languages.common.extensionpoints.SyncInformation;
+import org.eclipse.papyrus.uml.tools.utils.StereotypeUtil;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.NamedElement;
+import org.eclipse.uml2.uml.PackageableElement;
+
+/**
+ * Keras language support
+ */
+public class KerasLangCodegen implements ILangCodegen2 {
+
+ protected ModelElementsCreator creator = null;
+
+ protected IProject lastProject = null;
+
+ @Override
+ public String getDescription() {
+ return "A generator for Keras/TensorFlow"; //$NON-NLS-1$
+ }
+
+ @Override
+ public boolean isEligible(Element modelElement) {
+ if (modelElement instanceof Classifier) {
+ return StereotypeUtil.isApplied(modelElement, Default_Container.class);
+ }
+ return false;
+ }
+
+ @Override
+ public String getSuffix(FILE_KIND fileKind) {
+ return "py"; //$NON-NLS-1$
+ }
+
+ @Override
+ public void generateCode(IProject project, PackageableElement element, IProgressMonitor monitor)
+ {
+ manageCreator(project, element);
+ creator.createPackageableElement(element, monitor);
+ }
+
+ @Override
+ public void cleanCode(IProject project, PackageableElement element, IProgressMonitor monitor) {
+ manageCreator(project, element);
+ creator.removePackageableElement(element, monitor);
+ }
+
+ @Override
+ public String getFileName(IProject project, NamedElement element) {
+ manageCreator(project, element);
+ return creator.getFileName(element);
+ }
+
+ @Override
+ public IProject getTargetProject(PackageableElement pe, boolean createIfMissing) {
+ return LocatePythonProject.getTargetProject(pe, createIfMissing);
+ }
+
+ protected void manageCreator(IProject project, Element element) {
+ if ((project == null) && (element instanceof PackageableElement)) {
+ project = getTargetProject((PackageableElement) element, false);
+ }
+ if ((creator == null) || (project != lastProject)) {
+ lastProject = project;
+ creator = new KerasModelElementsCreator(project);
+ }
+ }
+
+ @Override
+ public SyncInformation getSyncInformation(String methodName, String body) {
+ return null;
+ }
+
+ @Override
+ public MethodInfo getMethodInfo(NamedElement operationOrBehavior) {
+ return null;
+ }
+}
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/LayerInfo.java b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/LayerInfo.java
new file mode 100644
index 0000000..f65f46e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/LayerInfo.java
@@ -0,0 +1,13 @@
+package org.eclipse.papyrus.aiml.gen.keras;
+
+
+public class LayerInfo {
+ LayerInfo (int size) {
+ attributeNames = new String[size];
+ attributeValues = new String[size];
+ }
+ String[] attributeNames;
+ String[] attributeValues;
+}
+
+
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/LocatePythonProject.java b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/LocatePythonProject.java
new file mode 100644
index 0000000..107e39b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/LocatePythonProject.java
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * Copyright (c) 2006 - 2013 CEA LIST.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * CEA LIST - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.aiml.gen.keras;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.papyrus.designer.languages.common.base.TestInfo;
+import org.eclipse.papyrus.designer.languages.common.extensionpoints.ILangProjectSupport;
+import org.eclipse.papyrus.designer.languages.common.extensionpoints.LanguageProjectSupport;
+import org.eclipse.papyrus.uml.tools.utils.PackageUtil;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+public class LocatePythonProject {
+
+ private static final boolean Headless = TestInfo.runsHeadless();
+
+ /**
+ * Locate and return the target project for the given packageable element. Return null if
+ * no target project can be found.
+ *
+ * Ensures that the target project is correctly setup to contain generated C/C++ code. Does
+ * not create a new project, but may modify existing ones.
+ *
+ * @param pe
+ * a packageable element within a model
+ * @param createIfMissing
+ * if true, ask the user to apply the C++ nature if required.
+ * @return the associated project, if the C++ nature is applied.
+ */
+ public static IProject getTargetProject(PackageableElement pe, boolean createIfMissing) {
+ Package rootPkg = PackageUtil.getRootPackage(pe);
+
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+
+ org.eclipse.papyrus.designer.languages.common.profile.Codegen.Project projectStereo =
+ UMLUtil.getStereotypeApplication(rootPkg, org.eclipse.papyrus.designer.languages.common.profile.Codegen.Project.class);
+
+ String projectName;
+ if (projectStereo != null) {
+ projectName = projectStereo.getProjectName();
+ }
+ else {
+ projectName = "org.eclipse.papyrus.pygen." + rootPkg.getName(); //$NON-NLS-1$
+ }
+ IProject modelProject = root.getProject(projectName);
+
+ if (!modelProject.exists()) {
+ if (Headless)
+ {
+ try {
+ modelProject.create(null);
+ } catch (CoreException e) {
+ return null;
+ }
+ }
+ else {
+ boolean create = createIfMissing && openQuestion(
+ "Create python project?",
+ String.format("Create python project with name %s? ", projectName));
+ if (create) {
+ // TODO - there is no Python project support yet, projectSupport will always throw an exception
+ // => create PythonProjectSupport
+ try {
+ ILangProjectSupport projectSupport = LanguageProjectSupport.getProjectSupport("python"); //$NON-NLS-1$
+ modelProject = projectSupport.createProject(projectName);
+ projectSupport.setSettings(modelProject, projectSupport.initialConfigurationData());
+ if (modelProject == null) {
+ return null;
+ }
+ }
+ catch (Exception e) {
+ // create standard project
+ IProgressMonitor progressMonitor = new NullProgressMonitor();
+ try {
+ modelProject.create(progressMonitor);
+ } catch (CoreException ce) {
+ Activator.log.error(ce);
+ }
+ }
+ }
+ else {
+ return null;
+ }
+ }
+ }
+
+ // Make sure the target project is open. If it was just created then it is likely open,
+ // however if it is an old project then it could have been closed.
+ if (!modelProject.isOpen()) {
+ try {
+ modelProject.open(null);
+ } catch (CoreException e) {
+ return null;
+ }
+ }
+
+ // Make sure the target project has the python natures.
+ return modelProject;
+ }
+
+ private static boolean openQuestion(final String title, final String message)
+ {
+ final boolean[] ret = new boolean[] { false };
+ Display.getDefault().syncExec(new Runnable() {
+ @Override
+ public void run() {
+ ret[0] = MessageDialog.openQuestion(Display.getCurrent().getActiveShell(), title, message);
+ }
+ });
+ return ret[0];
+ }
+}
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/ModelOps.xtend b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/ModelOps.xtend
new file mode 100644
index 0000000..5481f7b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/ModelOps.xtend
@@ -0,0 +1,238 @@
+package org.eclipse.papyrus.aiml.gen.keras
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+import org.eclipse.papyrus.aiml.gen.keras.GenCheck
+import java.util.ArrayList
+import org.eclipse.uml2.uml.InformationFlow
+
+/**
+ * Composing each functions needed to compute the model : _init_ and _call_
+ */
+class ModelOps {
+ static def modelAttributesToCollectProperly(Model mod_val) {
+
+ var mi = new ModuleInfoAttributes()
+ for (value : mod_val.eClass.EAllAttributes) {
+
+ var attri_name = value.name
+ mi.attributesName.add(attri_name)
+ var attri_val = mod_val.eGet(value)
+ mi.attributesValue.add(attri_val)
+ var attri_type= value.EType
+ mi.attributesType.add(value.EType.instanceClassName)
+
+ if (attri_type.instanceClass.isAssignableFrom(Float)) {
+
+ }
+
+ }
+ //for (valu2 : mi.attributesValue){
+ //var attri_type= valu2.class.typeName
+ //mi.attributesType.add(valu2.class.typeName)
+ //}
+ return mi
+ }
+ /**
+ * Select model attributes to display for the compilation
+ */
+ static def modelAttributesToDisplayForCompilationProperly(Model mod) {
+
+ val attributes = ModelOps.modelAttributesToCollectProperly(mod) // Collect Attributes
+ var name_attrib = attributes.attributesName.toList
+ var val_attrib = attributes.attributesValue.toList
+ var String Display = mod.base_Class.name.toFirstLower + ".compile("
+
+ var increm = 0
+ for (step : val_attrib) {
+ if( !name_attrib.get(increm).equals("name")){
+ if ( step instanceof String ) {
+ System.out.println("String ok")
+
+
+ if (!GenCheck.isZeroForString(step) && !GenCheck.isNullOrEmptyForString(step) ) {
+ var String DisplayInit = name_attrib.get(increm)
+ var String DisplayStateZero = DisplayInit + '="' + step + '",'
+ Display = Display + DisplayStateZero
+ }
+ }else if ( step instanceof Boolean){
+ System.out.println("Boolean ok")
+
+ if (!GenCheck.isFalseBoolean(step) && !GenCheck.isNull(step)) {
+ System.out.println("RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR")
+
+ var String DisplayInit = name_attrib.get(increm)
+ var String DisplayStateZero = DisplayInit + '="' + step + '",'
+ Display = Display + DisplayStateZero
+ }
+
+ }
+ }
+ increm+=1
+
+
+ }
+ Display = Display.substring(0, Display.length() - 1) + ")"
+
+ return Display
+ }
+ /**
+ * Collect model attributes for the compilation step
+ */
+ static def modelAttributesToCollect(Model mod_val) {
+ var type = mod_val.eClass.ESuperTypes
+ var l = 0
+
+ var String[] namelisted = newArrayOfSize(mod_val.eClass.EAllAttributes.length)
+ var vallisted = newArrayOfSize(mod_val.eClass.EAllAttributes.length)
+ var typelisted = newArrayOfSize(mod_val.eClass.EAllAttributes.length)
+ var String[][] shades = newArrayOfSize(mod_val.eClass.EAllAttributes.length,
+ mod_val.eClass.EAllAttributes.length)
+
+ for (valu : mod_val.eClass.EAllAttributes) {
+ l = l + 1
+ var d = l - 1
+
+ var attri_name = valu.name
+ namelisted.set(d, attri_name)
+
+ if (!GenCheck.isNullOrEmptyForString(String.valueOf(mod_val.eGet(valu)))) {
+ val attri_type = mod_val.eGet(valu).getClass().getSimpleName()
+ typelisted.set(d, attri_type)
+
+ var attri_val = mod_val.eGet(valu)
+ vallisted.set(d, String.valueOf(attri_val))
+
+ val String[][] shade = #[namelisted, vallisted]
+ shades = shade
+ } else {
+ // System.err.println(valu+"\n");
+ // System.out.println(mod_val.eGet(valu));
+ }
+ }
+ // System.err.println(shades.toList.get(0).toList)
+ return shades
+ }
+
+ /**
+ * Select model attributes to display for the compilation
+ */
+ static def modelAttributesToDisplayForCompilation(Model mod) {
+
+ val attributes = org.eclipse.papyrus.aiml.gen.keras.ModelOps.modelAttributesToCollect(mod) // Collect Attributes
+ var name_attrib = attributes.get(0).toList
+ var val_attrib = attributes.get(1).toList
+ var String Display = mod.base_Class.name.toFirstLower + ".compile("
+
+ for (step : val_attrib) {
+ if (!GenCheck.isZeroForString(step) || !GenCheck.isNullOrEmptyForString(step) || !name_attrib.get(val_attrib.indexOf(step)).equals("name")) {
+ var String DisplayInit = name_attrib.get(val_attrib.indexOf(step))
+ var String DisplayStateZero = DisplayInit + '="' + step + '",'
+ Display = Display + DisplayStateZero
+ }
+ }
+ Display = Display.substring(0, Display.length() - 1) + ")"
+
+ return Display
+ }
+
+ /**
+ * Collect information flow as following Input,Output -> [LayerName,Inputs,Outputs]
+ */
+ static def genInputOutputLayerArrayWithFlow(Integer nbr_lay, Model l) {
+ val mi = new ModuleInfo(nbr_lay);
+ // System.err.println(l.base_Class.ownedAttributes+"\n")
+ var int i = 0
+
+
+ for (layer : l.base_Class.ownedAttributes) {
+ var inputList = layer.getTargetDirectedRelationships()
+ var outputList = layer.getSourceDirectedRelationships()
+ System.err.println("name Connection : "+layer.name)
+
+ System.err.println("nbr Connection : "+layer.getTargetDirectedRelationships().length)
+ mi.layersName.set(i, layer.name)
+
+ for (input : inputList) {
+ val inFlow = input as InformationFlow
+
+ mi.layersInput.set(i, inFlow)
+ }
+
+ for (output : outputList) {
+
+ val outFlow = output as InformationFlow
+ mi.layersOutput.set(i, outFlow)
+ }
+ i = i + 1
+ }
+ i = 0
+ System.err.println(mi)
+ System.err.println(mi.layersInput.toList)
+
+ if(GenCheck.findNbrOfInformationFLowMissing(mi)!=0 && GenCheck.findNbrOfInformationFLowPara(l)!=0){
+ return mi
+ }else{
+ return 1
+ }
+
+
+ }
+
+ /**
+ * Sort layers according to informations flows
+ */
+ static def genFlowOrder(Integer nbr_lay, ModuleInfo mi) {
+
+
+ var index_first_layer = mi.genFlowOrderInit // genFlowOrderInit
+ var sorted_layer_indexs = new ArrayList
+ var sorted_layer_names = new ArrayList
+
+ sorted_layer_indexs.add(index_first_layer)
+
+ var i = 1
+ while (i < mi.layersName.toList.length) {
+ index_first_layer = genFlowOrderNext(mi, index_first_layer) // genFlowOrderNext
+ sorted_layer_indexs.add(index_first_layer)
+ i += 1
+ }
+
+ for (u : sorted_layer_indexs) {
+ sorted_layer_names.add(mi.layersName.toList.get(u))
+ System.out.println(mi.layersName.toList.get(u))
+ }
+ return sorted_layer_names
+
+ }
+
+ /**
+ * Collect the first layer according to the information flow
+ */
+ static def genFlowOrderInit(ModuleInfo mi) {
+ // var nbr_layer=mi.layersName.toList.length
+ // System.err.println(mi.layersName.toList.length)
+ var index_first_layer = 0
+
+ for (ell : mi.layersInput) {
+ if (ell === null) { // premiere couche
+ // System.err.println("deb : "+mi.layersName.toList.get(mi.layersInput.indexOf(ell)))
+ index_first_layer = mi.layersInput.indexOf(ell)
+ }
+ }
+ return index_first_layer
+ }
+
+ /**
+ * Collect following layers according to the information flow
+ */
+ static def genFlowOrderNext(ModuleInfo mi, Integer index_first_layer) {
+ var index_next_layer = index_first_layer
+
+ for (el : mi.layersInput) {
+ if (el === mi.layersOutput.toList.get(index_next_layer)) {
+ index_next_layer = mi.layersInput.indexOf(mi.layersOutput.toList.get(index_next_layer))
+ return index_next_layer
+ }
+ }
+ }
+}
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/ModuleInfo.java b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/ModuleInfo.java
new file mode 100644
index 0000000..43e87b5
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/ModuleInfo.java
@@ -0,0 +1,14 @@
+package org.eclipse.papyrus.aiml.gen.keras;
+
+import org.eclipse.uml2.uml.InformationFlow;
+
+public class ModuleInfo {
+ ModuleInfo (int size) {
+ layersName = new String[size];
+ layersInput = new InformationFlow[size];
+ layersOutput = new InformationFlow[size];
+ }
+ String[] layersName;
+ InformationFlow[] layersInput;
+ InformationFlow[] layersOutput;
+}
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/ModuleInfoAttributes.java b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/ModuleInfoAttributes.java
new file mode 100644
index 0000000..4c6e4c7
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/ModuleInfoAttributes.java
@@ -0,0 +1,19 @@
+package org.eclipse.papyrus.aiml.gen.keras;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ModuleInfoAttributes {
+ ModuleInfoAttributes() {
+ attributesName = new ArrayList<String>();
+ attributesValue =new ArrayList<Object>();
+ attributesType = new ArrayList<String>();
+
+ }
+
+ List<String> attributesName;
+ List<Object> attributesValue;
+ List<String> attributesType;
+
+
+}
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/RecurrentLayerOps.xtend b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/RecurrentLayerOps.xtend
new file mode 100644
index 0000000..d0f78cf
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/RecurrentLayerOps.xtend
@@ -0,0 +1,110 @@
+package org.eclipse.papyrus.aiml.gen.keras
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers
+
+class RecurrentLayerOps {
+
+
+ static def lstmAttributesToDisplay (Recurrent_layers lay_val){
+ var t = RecurrentLayerOps.lstmAttributesToCollect(lay_val)
+ var attributesNameList=t.attributeNames.toList
+ var attributesValueList=t.attributeValues.toList
+
+
+ var String DisplayInit="self."+lay_val.base_Class.name+"=tf.keras.layers."+lay_val.eClass.name // example : self.lstm1=tf.keras.layers.LSTM
+
+ var Display = "" // Initialization an empty String variable
+ var modificationState=0
+ var in=0
+ for(step : attributesValueList){
+ if( attributesNameList.get(in).equals("hidden_size")){
+ System.err.println(step)
+ var String DisplayHiddenSize = step+','
+ Display+=DisplayHiddenSize //à verifier += au lieu de d=d+a
+ modificationState++
+
+ }
+ in+=1
+ }
+
+ var ind =0
+ for(step : attributesValueList){
+
+ if( GenCheck.isZeroForStringL(step) || GenCheck.isNullOrEmptyForString(step) || GenCheck.isFalseForString(step) ){
+
+ //System.out.print("Rejected : "+attributesNameList.get(ind)+" = "+step+"\n")
+
+ }else{
+ //System.out.print("Valid : "+attributesNameList.get(ind)+" = "+step+"\n")
+
+ if(attributesNameList.get(ind).equals("name") || attributesNameList.get(ind).equals("hidden_size") || attributesNameList.get(ind).equals("num_layers")){
+ }else{
+ if(!attributesNameList.get(ind).endsWith("_pt")){ //filter PyTorch specific attributes
+
+
+ modificationState++
+ if(step.equals("true") || step.equals("false") ){ // correct Boolean value to python boolean with MAJ
+ var String DisplayInit1 = attributesNameList.get(ind)
+
+ if(step.equals("false")){
+ var newstep = "F"+step.substring(1, step.length())
+ var String DisplayStateZero1 = DisplayInit1+'='+newstep+','
+ Display=Display+DisplayStateZero1
+
+ }else{
+ var newstep = "T"+step.substring(1, step.length())
+ var String DisplayStateZero2 = DisplayInit1+'='+newstep+','
+ Display=Display+DisplayStateZero2
+ }
+
+ }else if(attributesNameList.get(ind).equals("input_size")){
+ var String DisplayInit3 = "input_shape"
+ var String DisplayStateZero3 = DisplayInit3+'=['+step+'],'
+ Display=Display+DisplayStateZero3
+
+ }else{
+ var String DisplayInit0 = attributesNameList.get(ind)
+ var String DisplayStateZero0 = DisplayInit0+'='+step+','
+ Display=Display+DisplayStateZero0
+ }
+ }
+ }
+ }
+ ind = ind + 1
+ }
+
+ var displayFinal=""
+
+ if (modificationState!=0){
+ displayFinal=DisplayInit+"("+Display.substring(0, Display.length() - 1)+")"
+ }else{
+ displayFinal=DisplayInit //Non optimal _ recuperer la valeur
+ }
+
+ return displayFinal
+ }
+
+ static def lstmAttributesToCollect (Recurrent_layers lay_val){
+
+ val nbrOfAttributes=lay_val.eClass.EAllAttributes.length // Get the quantity of attributes
+
+ var layerInformations = new LayerInfo(nbrOfAttributes) // Call LayerInformation Constructor to build 2D Array
+
+ var attributesNameList = layerInformations.attributeNames // Dispatch attributesNames from LayerInformation in a List
+ var attributesValueList = layerInformations.attributeValues // Dispatch attributesValues from LayerInformation in a List
+
+ var l=0 // Index initialization for the incremental loop
+ for (valu : lay_val.eClass.EAllAttributes){ // Loop which will collect Attribute Names and Attribute Values for Layers
+
+ var attri_name=valu.name // Variable instance for attribute name for each elements in the loop
+ attributesNameList.set(l,attri_name) // Add attribute name in the list
+
+ var attri_val=lay_val.eGet(valu) // Variable instance for attribute values for each elements in the loop and String conversion
+ attributesValueList.set(l,String.valueOf(attri_val)) // Add attribute value in the list
+
+ l=l+1 // Index incrementation +1 during loop
+
+ }
+ return layerInformations // return LayerInfo object [Name,Value]
+ }
+}
\ No newline at end of file
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/transformation/KerasModelElementsCreator.java b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/transformation/KerasModelElementsCreator.java
new file mode 100644
index 0000000..c51265a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/src/org/eclipse/papyrus/aiml/gen/keras/transformation/KerasModelElementsCreator.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2016 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License 2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Ansgar Radermacher - Initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.aiml.gen.keras.transformation;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.papyrus.aiml.gen.keras.GenKeras;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.designer.languages.common.base.HierarchyLocationStrategy;
+import org.eclipse.papyrus.designer.languages.common.base.ModelElementsCreator;
+import org.eclipse.papyrus.designer.languages.common.base.file.FileSystemAccessFactory;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Classifier;
+import org.eclipse.uml2.uml.Element;
+import org.eclipse.uml2.uml.PackageableElement;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+public class KerasModelElementsCreator extends ModelElementsCreator {
+
+ private static final String PYTHON_LANG = "python"; //$NON-NLS-1$
+
+ private boolean done = false ;
+
+ public KerasModelElementsCreator(IProject project) {
+ this(project, PYTHON_LANG);
+ }
+
+ public KerasModelElementsCreator(IProject project, String language) {
+ super(FileSystemAccessFactory.create(project), new HierarchyLocationStrategy(), language);
+ this.project = project;
+ pythonExt = "py"; //$NON-NLS-1$
+ }
+
+ protected String pythonExt;
+
+ @Override
+ protected boolean noCodeGen(Element element) {
+ return false;
+ }
+
+ @Override
+ protected void createPackageableElementFile(PackageableElement pe, IProgressMonitor monitor) {
+ if (pe instanceof Classifier) {
+ Classifier classifier = (Classifier) pe;
+ final String fileName = locStrategy.getFileName(classifier) + "." + pythonExt; //$NON-NLS-1$
+ String result = ""; //$NON-NLS-1$
+ if (classifier instanceof Class) {
+ Model dc = UMLUtil.getStereotypeApplication(pe, Model.class);
+ if (!done && dc.getClass().getName().contains("Model") ) {
+ result = GenKeras.genKeras((Class) classifier).toString();
+ fileSystemAccess.generateFile(fileName, result);
+ done = true;
+ }else{
+ //System.err.print(dc);
+ }
+ }
+ }
+ }
+}
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/xtend-gen/org/eclipse/papyrus/aiml/gen/keras/GenCheck.java b/aiml/org.eclipse.papyrus.aiml.gen.keras/xtend-gen/org/eclipse/papyrus/aiml/gen/keras/GenCheck.java
new file mode 100644
index 0000000..dcd335b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/xtend-gen/org/eclipse/papyrus/aiml/gen/keras/GenCheck.java
@@ -0,0 +1,107 @@
+package org.eclipse.papyrus.aiml.gen.keras;
+
+import java.util.HashSet;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.papyrus.aiml.gen.keras.ModuleInfo;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.uml2.uml.InformationFlow;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.xtext.xbase.lib.Conversions;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+
+@SuppressWarnings("all")
+public class GenCheck {
+ /**
+ * return true if Null for each type
+ */
+ public static boolean isNull(final Object value) {
+ return (value == null);
+ }
+
+ /**
+ * return true if Null for each type
+ */
+ public static boolean isFalseBoolean(final Boolean value) {
+ boolean _booleanValue = value.booleanValue();
+ return (Boolean.valueOf(_booleanValue) == Boolean.FALSE);
+ }
+
+ /**
+ * return true if Null or string value is empty
+ */
+ public static boolean isNullOrEmptyForString(final String value) {
+ return (((value == null) || (value.length() == 0)) || (value == "null"));
+ }
+
+ public static boolean isZeroForString(final String value) {
+ return ((value == "0.0") || (value == "0"));
+ }
+
+ public static boolean isZeroForStringL(final String value) {
+ return (value.equals("0.0") || value.equals("0"));
+ }
+
+ /**
+ * return true if string value is equal to false
+ */
+ public static boolean isFalseForString(final String value) {
+ return ((value != null) && value.equals("false"));
+ }
+
+ /**
+ * collect the number of layers in the model
+ */
+ public static int findNbrOfLayer(final Model l) {
+ int nbr_lay = 0;
+ EList<Property> _ownedAttributes = l.getBase_Class().getOwnedAttributes();
+ for (final Property layer : _ownedAttributes) {
+ {
+ l.getClass().getSimpleName();
+ nbr_lay = (nbr_lay + 1);
+ }
+ }
+ return nbr_lay;
+ }
+
+ public static int findNbrOfInformationFLowPara(final Model l) {
+ int nbrInformationFlowFinal = 0;
+ int nbrInformationFlowByLayer = 0;
+ EList<Property> _ownedAttributes = l.getBase_Class().getOwnedAttributes();
+ for (final Property layer : _ownedAttributes) {
+ {
+ nbrInformationFlowByLayer = ((Object[])Conversions.unwrapArray(layer.getTargetDirectedRelationships(), Object.class)).length;
+ if ((nbrInformationFlowByLayer > nbrInformationFlowFinal)) {
+ nbrInformationFlowFinal = nbrInformationFlowByLayer;
+ }
+ }
+ }
+ if ((nbrInformationFlowFinal > 1)) {
+ MessageDialog.openWarning(Display.getCurrent().getActiveShell(), "Warning Message : InformationFlow ",
+ "NOT SUPPORTED : InformationFLow parallelization (Double entry) ");
+ return 0;
+ } else {
+ return 1;
+ }
+ }
+
+ public static int findNbrOfInformationFLowMissing(final ModuleInfo mi) {
+ List<InformationFlow> _list = IterableExtensions.<InformationFlow>toList(((Iterable<InformationFlow>)Conversions.doWrapArray(mi.layersInput)));
+ String _plus = ("module info list : " + _list);
+ System.err.println(_plus);
+ HashSet hs = new HashSet<String>();
+ hs.addAll(IterableExtensions.<Object>toList(((Iterable<Object>)Conversions.doWrapArray(mi.layersInput))));
+ int _size = IterableExtensions.<InformationFlow>toList(((Iterable<InformationFlow>)Conversions.doWrapArray(mi.layersInput))).size();
+ int _size_1 = hs.size();
+ int totalDuplicates = (_size - _size_1);
+ if ((totalDuplicates != 0)) {
+ MessageDialog.openWarning(Display.getCurrent().getActiveShell(), "Warning Message : InformationFlow ",
+ "NOT SUPPORTED : Missing InformationFlow Connection");
+ return 0;
+ } else {
+ return 1;
+ }
+ }
+}
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/xtend-gen/org/eclipse/papyrus/aiml/gen/keras/GenKeras.java b/aiml/org.eclipse.papyrus.aiml.gen.keras/xtend-gen/org/eclipse/papyrus/aiml/gen/keras/GenKeras.java
new file mode 100644
index 0000000..8f93b08
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/xtend-gen/org/eclipse/papyrus/aiml/gen/keras/GenKeras.java
@@ -0,0 +1,362 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse License 2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Abhishek Djeachandrane - Initial API and implementation
+ */
+package org.eclipse.papyrus.aiml.gen.keras;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.aiml.gen.keras.GenCheck;
+import org.eclipse.papyrus.aiml.gen.keras.ModelOps;
+import org.eclipse.papyrus.aiml.gen.keras.ModuleInfo;
+import org.eclipse.papyrus.aiml.gen.keras.ModuleInfoAttributes;
+import org.eclipse.papyrus.aiml.gen.keras.RecurrentLayerOps;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear;
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.GRU;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.LSTM;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor;
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.util.UMLUtil;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Conversions;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.StringExtensions;
+
+@SuppressWarnings("all")
+public class GenKeras {
+ public static CharSequence genKeras(final org.eclipse.uml2.uml.Class clazz) {
+ final Model module = UMLUtil.<Model>getStereotypeApplication(clazz, Model.class);
+ if ((module != null)) {
+ return GenKeras.genModule(module);
+ } else {
+ return "";
+ }
+ }
+
+ /**
+ * Generate a model with different elements necessary for the compilation
+ */
+ public static CharSequence genModule(final Model module) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _genDefaultTemplate = GenKeras.genDefaultTemplate(module);
+ _builder.append(_genDefaultTemplate);
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _genModuleInit = GenKeras.genModuleInit(module);
+ _builder.append(_genModuleInit);
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _genModuleCall = GenKeras.genModuleCall(module);
+ _builder.append(_genModuleCall, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _genModuleCompilation = GenKeras.genModuleCompilation(module);
+ _builder.append(_genModuleCompilation);
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ return _builder;
+ }
+
+ /**
+ * Generate the model instance and compilation
+ */
+ public static CharSequence genModuleCompilation(final Model module) {
+ StringConcatenation _builder = new StringConcatenation();
+ String _firstLower = StringExtensions.toFirstLower(module.getBase_Class().getName());
+ _builder.append(_firstLower);
+ _builder.append(" = ");
+ String _name = module.getBase_Class().getName();
+ _builder.append(_name);
+ _builder.append("()");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ ModuleInfoAttributes study = ModelOps.modelAttributesToCollectProperly(module);
+ _builder.newLineIfNotEmpty();
+ List<String> _list = IterableExtensions.<String>toList(study.attributesName);
+ _builder.append(_list);
+ _builder.newLineIfNotEmpty();
+ List<Object> _list_1 = IterableExtensions.<Object>toList(study.attributesValue);
+ _builder.append(_list_1);
+ _builder.newLineIfNotEmpty();
+ List<String> _list_2 = IterableExtensions.<String>toList(study.attributesType);
+ _builder.append(_list_2);
+ _builder.newLineIfNotEmpty();
+ {
+ List<Object> _list_3 = IterableExtensions.<Object>toList(study.attributesValue);
+ for(final Object n : _list_3) {
+ _builder.newLine();
+ }
+ }
+ String study2 = ModelOps.modelAttributesToDisplayForCompilationProperly(module);
+ _builder.newLineIfNotEmpty();
+ _builder.append(study2);
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ /**
+ * Generate the basic template with importation in the head of the code
+ */
+ public static CharSequence genDefaultTemplate(final Model module) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("# generated by Papyrus from module ");
+ Class<? extends org.eclipse.uml2.uml.Class> _class = module.getBase_Class().getClass();
+ _builder.append(_class);
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("import tensorflow as tf");
+ _builder.newLine();
+ _builder.append("from tensorflow import keras");
+ _builder.newLine();
+ _builder.append("inputs=[(1,2),(3,4)]");
+ _builder.newLine();
+ return _builder;
+ }
+
+ /**
+ * Generate layer instance through modeling
+ */
+ public static CharSequence genModuleInit(final Model module) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("class ");
+ String _name = module.getBase_Class().getName();
+ _builder.append(_name);
+ _builder.append("(tf.keras.Model):");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("def __init__(self):");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super(MyModel, self).__init__()");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ {
+ EList<Property> _ownedAttributes = module.getBase_Class().getOwnedAttributes();
+ for(final Property layer : _ownedAttributes) {
+ _builder.append("\t\t");
+ final Type type = layer.getType();
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ final Model layerSt = UMLUtil.<Model>getStereotypeApplication(type, Model.class);
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ CharSequence _genLayer = GenKeras.genLayer(layerSt);
+ _builder.append(_genLayer, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ EList<Connector> _ownedConnectors = module.getBase_Class().getOwnedConnectors();
+ for(final Connector connector : _ownedConnectors) {
+ }
+ }
+ return _builder;
+ }
+
+ /**
+ * Generate the code which consist to determine the data flow between layers
+ * @param l the model ...
+ */
+ public static CharSequence genModuleCall(final Model module) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("def call(self, inputs):");
+ _builder.newLine();
+ _builder.newLine();
+ int nbr_lay = GenCheck.findNbrOfLayer(module);
+ _builder.newLineIfNotEmpty();
+ Object unsortedInformationFlowList = ModelOps.genInputOutputLayerArrayWithFlow(Integer.valueOf(nbr_lay), module);
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ {
+ if ((unsortedInformationFlowList instanceof ModuleInfo)) {
+ ArrayList<String> sortedInformationFlowList = ModelOps.genFlowOrder(Integer.valueOf(nbr_lay), ((ModuleInfo)unsortedInformationFlowList));
+ _builder.newLineIfNotEmpty();
+ {
+ List<String> _list = IterableExtensions.<String>toList(sortedInformationFlowList);
+ for(final String layer : _list) {
+ _builder.append("\t");
+ int _indexOf = IterableExtensions.<String>toList(sortedInformationFlowList).indexOf(layer);
+ int inputs = (_indexOf - 1);
+ _builder.newLineIfNotEmpty();
+ {
+ if ((inputs < 0)) {
+ _builder.append("\t");
+ _builder.append("x");
+ int _indexOf_1 = IterableExtensions.<String>toList(sortedInformationFlowList).indexOf(layer);
+ _builder.append(_indexOf_1, "\t");
+ _builder.append(" = self.");
+ _builder.append(layer, "\t");
+ _builder.append("(input)");
+ _builder.newLineIfNotEmpty();
+ } else {
+ if (((inputs >= 0) && (inputs < (((Object[])Conversions.unwrapArray(sortedInformationFlowList, Object.class)).length - 2)))) {
+ _builder.append("\t");
+ _builder.append("x");
+ int _indexOf_2 = IterableExtensions.<String>toList(sortedInformationFlowList).indexOf(layer);
+ _builder.append(_indexOf_2, "\t");
+ _builder.append(" = self.");
+ _builder.append(layer, "\t");
+ _builder.append("(x");
+ _builder.append(inputs, "\t");
+ _builder.append(")");
+ _builder.newLineIfNotEmpty();
+ } else {
+ final ArrayList<String> _converted_sortedInformationFlowList = (ArrayList<String>)sortedInformationFlowList;
+ int _length = ((Object[])Conversions.unwrapArray(_converted_sortedInformationFlowList, Object.class)).length;
+ int _minus = (_length - 2);
+ boolean _equals = (inputs == _minus);
+ if (_equals) {
+ _builder.append("\t");
+ _builder.append("output = self.");
+ _builder.append(layer, "\t");
+ _builder.append("(x");
+ _builder.append(inputs, "\t");
+ _builder.append(")");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ _builder.append("\t");
+ _builder.append("return output\t\t");
+ _builder.newLine();
+ return _builder;
+ }
+
+ /**
+ * Generate each layer according to the model
+ */
+ public static CharSequence genLayer(final Model layer) {
+ CharSequence _xifexpression = null;
+ if ((layer instanceof Convolution_layers)) {
+ _xifexpression = GenKeras.genConvolutionLayer(((Convolution_layers) layer));
+ } else {
+ CharSequence _xifexpression_1 = null;
+ if ((layer instanceof Recurrent_layers)) {
+ _xifexpression_1 = GenKeras.genRecurrentLayer(((Recurrent_layers) layer));
+ } else {
+ CharSequence _xifexpression_2 = null;
+ if ((layer instanceof Linear_layers)) {
+ _xifexpression_2 = GenKeras.genLinearLayer(((Linear_layers) layer));
+ }
+ _xifexpression_1 = _xifexpression_2;
+ }
+ _xifexpression = _xifexpression_1;
+ }
+ return _xifexpression;
+ }
+
+ /**
+ * Generate each convolution layer according to the model
+ */
+ public static CharSequence genConvolutionLayer(final Convolution_layers convolutionLayer) {
+ StringConcatenation _builder = new StringConcatenation();
+ return _builder;
+ }
+
+ /**
+ * Generate each linear layer according to the model
+ */
+ public static CharSequence genLinearLayer(final Linear_layers linearLayer) {
+ CharSequence _xifexpression = null;
+ if ((linearLayer instanceof Linear)) {
+ _xifexpression = GenKeras.genDense(((Linear) linearLayer));
+ }
+ return _xifexpression;
+ }
+
+ /**
+ * Generate each recurrent layer according to the model
+ */
+ public static CharSequence genRecurrentLayer(final Recurrent_layers recurrentLayer) {
+ CharSequence _xifexpression = null;
+ if ((recurrentLayer instanceof LSTM)) {
+ _xifexpression = GenKeras.genLstm(((LSTM) recurrentLayer));
+ } else {
+ CharSequence _xifexpression_1 = null;
+ if ((recurrentLayer instanceof GRU)) {
+ _xifexpression_1 = GenKeras.genGru(((GRU) recurrentLayer));
+ }
+ _xifexpression = _xifexpression_1;
+ }
+ return _xifexpression;
+ }
+
+ /**
+ * Generate each dense layer according to the model
+ */
+ public static CharSequence genDense(final Linear denseLayer) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("self.");
+ String _name = denseLayer.getBase_Class().getName();
+ _builder.append(_name);
+ _builder.append("=tf.keras.layers.Dense(");
+ int _in_features = denseLayer.getIn_features();
+ _builder.append(_in_features);
+ _builder.append(")");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ /**
+ * Generate each LSTM layer according to the model
+ */
+ public static CharSequence genLstm(final LSTM lstmLayer) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t\t\t\t\t\t\t\t\t\t\t\t");
+ String tt = RecurrentLayerOps.lstmAttributesToDisplay(lstmLayer);
+ _builder.newLineIfNotEmpty();
+ _builder.append(tt);
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ /**
+ * Generate each GRU layer according to the model
+ */
+ public static CharSequence genGru(final GRU gruLayer) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t\t\t\t");
+ String tt = RecurrentLayerOps.lstmAttributesToDisplay(gruLayer);
+ _builder.newLineIfNotEmpty();
+ _builder.append(tt);
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ /**
+ * Generate each tensor according to the model
+ */
+ public static CharSequence genTensor(final Tensor tensor) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("tensor ...");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/xtend-gen/org/eclipse/papyrus/aiml/gen/keras/ModelOps.java b/aiml/org.eclipse.papyrus.aiml.gen.keras/xtend-gen/org/eclipse/papyrus/aiml/gen/keras/ModelOps.java
new file mode 100644
index 0000000..39a3b71
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/xtend-gen/org/eclipse/papyrus/aiml/gen/keras/ModelOps.java
@@ -0,0 +1,245 @@
+package org.eclipse.papyrus.aiml.gen.keras;
+
+import java.util.ArrayList;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.papyrus.aiml.gen.keras.GenCheck;
+import org.eclipse.papyrus.aiml.gen.keras.ModuleInfo;
+import org.eclipse.papyrus.aiml.gen.keras.ModuleInfoAttributes;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.uml2.uml.DirectedRelationship;
+import org.eclipse.uml2.uml.InformationFlow;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.xtext.xbase.lib.Conversions;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.StringExtensions;
+
+/**
+ * Composing each functions needed to compute the model : _init_ and _call_
+ */
+@SuppressWarnings("all")
+public class ModelOps {
+ public static ModuleInfoAttributes modelAttributesToCollectProperly(final Model mod_val) {
+ ModuleInfoAttributes mi = new ModuleInfoAttributes();
+ EList<EAttribute> _eAllAttributes = mod_val.eClass().getEAllAttributes();
+ for (final EAttribute value : _eAllAttributes) {
+ {
+ String attri_name = value.getName();
+ mi.attributesName.add(attri_name);
+ Object attri_val = mod_val.eGet(value);
+ mi.attributesValue.add(attri_val);
+ EClassifier attri_type = value.getEType();
+ mi.attributesType.add(value.getEType().getInstanceClassName());
+ boolean _isAssignableFrom = attri_type.getInstanceClass().isAssignableFrom(Float.class);
+ if (_isAssignableFrom) {
+ }
+ }
+ }
+ return mi;
+ }
+
+ /**
+ * Select model attributes to display for the compilation
+ */
+ public static String modelAttributesToDisplayForCompilationProperly(final Model mod) {
+ final ModuleInfoAttributes attributes = ModelOps.modelAttributesToCollectProperly(mod);
+ List<String> name_attrib = IterableExtensions.<String>toList(attributes.attributesName);
+ List<Object> val_attrib = IterableExtensions.<Object>toList(attributes.attributesValue);
+ String _firstLower = StringExtensions.toFirstLower(mod.getBase_Class().getName());
+ String Display = (_firstLower + ".compile(");
+ int increm = 0;
+ for (final Object step : val_attrib) {
+ {
+ boolean _equals = name_attrib.get(increm).equals("name");
+ boolean _not = (!_equals);
+ if (_not) {
+ if ((step instanceof String)) {
+ System.out.println("String ok");
+ if (((!GenCheck.isZeroForString(((String)step))) && (!GenCheck.isNullOrEmptyForString(((String)step))))) {
+ String DisplayInit = name_attrib.get(increm);
+ String DisplayStateZero = (((DisplayInit + "=\"") + ((String)step)) + "\",");
+ Display = (Display + DisplayStateZero);
+ }
+ } else {
+ if ((step instanceof Boolean)) {
+ System.out.println("Boolean ok");
+ if (((!GenCheck.isFalseBoolean(((Boolean)step))) && (!GenCheck.isNull(step)))) {
+ System.out.println("RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR");
+ String DisplayInit_1 = name_attrib.get(increm);
+ String DisplayStateZero_1 = (((DisplayInit_1 + "=\"") + step) + "\",");
+ Display = (Display + DisplayStateZero_1);
+ }
+ }
+ }
+ }
+ int _increm = increm;
+ increm = (_increm + 1);
+ }
+ }
+ int _length = Display.length();
+ int _minus = (_length - 1);
+ String _substring = Display.substring(0, _minus);
+ String _plus = (_substring + ")");
+ Display = _plus;
+ return Display;
+ }
+
+ /**
+ * Collect model attributes for the compilation step
+ */
+ public static String[][] modelAttributesToCollect(final Model mod_val) {
+ EList<EClass> type = mod_val.eClass().getESuperTypes();
+ int l = 0;
+ String[] namelisted = new String[((Object[])Conversions.unwrapArray(mod_val.eClass().getEAllAttributes(), Object.class)).length];
+ String[] vallisted = new String[((Object[])Conversions.unwrapArray(mod_val.eClass().getEAllAttributes(), Object.class)).length];
+ String[] typelisted = new String[((Object[])Conversions.unwrapArray(mod_val.eClass().getEAllAttributes(), Object.class)).length];
+ String[][] shades = new String[((Object[])Conversions.unwrapArray(mod_val.eClass().getEAllAttributes(), Object.class)).length][
+ ((Object[])Conversions.unwrapArray(mod_val.eClass().getEAllAttributes(), Object.class)).length];
+ EList<EAttribute> _eAllAttributes = mod_val.eClass().getEAllAttributes();
+ for (final EAttribute valu : _eAllAttributes) {
+ {
+ l = (l + 1);
+ int d = (l - 1);
+ String attri_name = valu.getName();
+ namelisted[d] = attri_name;
+ boolean _isNullOrEmptyForString = GenCheck.isNullOrEmptyForString(String.valueOf(mod_val.eGet(valu)));
+ boolean _not = (!_isNullOrEmptyForString);
+ if (_not) {
+ final String attri_type = mod_val.eGet(valu).getClass().getSimpleName();
+ typelisted[d] = attri_type;
+ Object attri_val = mod_val.eGet(valu);
+ vallisted[d] = String.valueOf(attri_val);
+ final String[][] shade = { namelisted, vallisted };
+ shades = shade;
+ } else {
+ }
+ }
+ }
+ return shades;
+ }
+
+ /**
+ * Select model attributes to display for the compilation
+ */
+ public static String modelAttributesToDisplayForCompilation(final Model mod) {
+ final String[][] attributes = ModelOps.modelAttributesToCollect(mod);
+ List<String> name_attrib = IterableExtensions.<String>toList(((Iterable<String>)Conversions.doWrapArray(attributes[0])));
+ List<String> val_attrib = IterableExtensions.<String>toList(((Iterable<String>)Conversions.doWrapArray(attributes[1])));
+ String _firstLower = StringExtensions.toFirstLower(mod.getBase_Class().getName());
+ String Display = (_firstLower + ".compile(");
+ for (final String step : val_attrib) {
+ if ((((!GenCheck.isZeroForString(step)) || (!GenCheck.isNullOrEmptyForString(step))) || (!name_attrib.get(val_attrib.indexOf(step)).equals("name")))) {
+ String DisplayInit = name_attrib.get(val_attrib.indexOf(step));
+ String DisplayStateZero = (((DisplayInit + "=\"") + step) + "\",");
+ Display = (Display + DisplayStateZero);
+ }
+ }
+ int _length = Display.length();
+ int _minus = (_length - 1);
+ String _substring = Display.substring(0, _minus);
+ String _plus = (_substring + ")");
+ Display = _plus;
+ return Display;
+ }
+
+ /**
+ * Collect information flow as following Input,Output -> [LayerName,Inputs,Outputs]
+ */
+ public static Object genInputOutputLayerArrayWithFlow(final Integer nbr_lay, final Model l) {
+ final ModuleInfo mi = new ModuleInfo((nbr_lay).intValue());
+ int i = 0;
+ EList<Property> _ownedAttributes = l.getBase_Class().getOwnedAttributes();
+ for (final Property layer : _ownedAttributes) {
+ {
+ EList<DirectedRelationship> inputList = layer.getTargetDirectedRelationships();
+ EList<DirectedRelationship> outputList = layer.getSourceDirectedRelationships();
+ String _name = layer.getName();
+ String _plus = ("name Connection : " + _name);
+ System.err.println(_plus);
+ int _length = ((Object[])Conversions.unwrapArray(layer.getTargetDirectedRelationships(), Object.class)).length;
+ String _plus_1 = ("nbr Connection : " + Integer.valueOf(_length));
+ System.err.println(_plus_1);
+ mi.layersName[i] = layer.getName();
+ for (final DirectedRelationship input : inputList) {
+ {
+ final InformationFlow inFlow = ((InformationFlow) input);
+ mi.layersInput[i] = inFlow;
+ }
+ }
+ for (final DirectedRelationship output : outputList) {
+ {
+ final InformationFlow outFlow = ((InformationFlow) output);
+ mi.layersOutput[i] = outFlow;
+ }
+ }
+ i = (i + 1);
+ }
+ }
+ i = 0;
+ System.err.println(mi);
+ System.err.println(IterableExtensions.<InformationFlow>toList(((Iterable<InformationFlow>)Conversions.doWrapArray(mi.layersInput))));
+ if (((GenCheck.findNbrOfInformationFLowMissing(mi) != 0) && (GenCheck.findNbrOfInformationFLowPara(l) != 0))) {
+ return mi;
+ } else {
+ return Integer.valueOf(1);
+ }
+ }
+
+ /**
+ * Sort layers according to informations flows
+ */
+ public static ArrayList<String> genFlowOrder(final Integer nbr_lay, final ModuleInfo mi) {
+ int index_first_layer = ModelOps.genFlowOrderInit(mi);
+ ArrayList<Integer> sorted_layer_indexs = new ArrayList<Integer>();
+ ArrayList<String> sorted_layer_names = new ArrayList<String>();
+ sorted_layer_indexs.add(Integer.valueOf(index_first_layer));
+ int i = 1;
+ while ((i < ((Object[])Conversions.unwrapArray(IterableExtensions.<String>toList(((Iterable<String>)Conversions.doWrapArray(mi.layersName))), Object.class)).length)) {
+ {
+ index_first_layer = (ModelOps.genFlowOrderNext(mi, Integer.valueOf(index_first_layer))).intValue();
+ sorted_layer_indexs.add(Integer.valueOf(index_first_layer));
+ int _i = i;
+ i = (_i + 1);
+ }
+ }
+ for (final Integer u : sorted_layer_indexs) {
+ {
+ sorted_layer_names.add(IterableExtensions.<String>toList(((Iterable<String>)Conversions.doWrapArray(mi.layersName))).get((u).intValue()));
+ System.out.println(IterableExtensions.<String>toList(((Iterable<String>)Conversions.doWrapArray(mi.layersName))).get((u).intValue()));
+ }
+ }
+ return sorted_layer_names;
+ }
+
+ /**
+ * Collect the first layer according to the information flow
+ */
+ public static int genFlowOrderInit(final ModuleInfo mi) {
+ int index_first_layer = 0;
+ for (final InformationFlow ell : mi.layersInput) {
+ if ((ell == null)) {
+ index_first_layer = ((List<InformationFlow>)Conversions.doWrapArray(mi.layersInput)).indexOf(ell);
+ }
+ }
+ return index_first_layer;
+ }
+
+ /**
+ * Collect following layers according to the information flow
+ */
+ public static Integer genFlowOrderNext(final ModuleInfo mi, final Integer index_first_layer) {
+ Integer index_next_layer = index_first_layer;
+ for (final InformationFlow el : mi.layersInput) {
+ InformationFlow _get = IterableExtensions.<InformationFlow>toList(((Iterable<InformationFlow>)Conversions.doWrapArray(mi.layersOutput))).get((index_next_layer).intValue());
+ boolean _tripleEquals = (el == _get);
+ if (_tripleEquals) {
+ index_next_layer = Integer.valueOf(((List<InformationFlow>)Conversions.doWrapArray(mi.layersInput)).indexOf(IterableExtensions.<InformationFlow>toList(((Iterable<InformationFlow>)Conversions.doWrapArray(mi.layersOutput))).get((index_next_layer).intValue())));
+ return index_next_layer;
+ }
+ }
+ return null;
+ }
+}
diff --git a/aiml/org.eclipse.papyrus.aiml.gen.keras/xtend-gen/org/eclipse/papyrus/aiml/gen/keras/RecurrentLayerOps.java b/aiml/org.eclipse.papyrus.aiml.gen.keras/xtend-gen/org/eclipse/papyrus/aiml/gen/keras/RecurrentLayerOps.java
new file mode 100644
index 0000000..55d165d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.gen.keras/xtend-gen/org/eclipse/papyrus/aiml/gen/keras/RecurrentLayerOps.java
@@ -0,0 +1,115 @@
+package org.eclipse.papyrus.aiml.gen.keras;
+
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.papyrus.aiml.gen.keras.GenCheck;
+import org.eclipse.papyrus.aiml.gen.keras.LayerInfo;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers;
+import org.eclipse.xtext.xbase.lib.Conversions;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+
+@SuppressWarnings("all")
+public class RecurrentLayerOps {
+ public static String lstmAttributesToDisplay(final Recurrent_layers lay_val) {
+ LayerInfo t = RecurrentLayerOps.lstmAttributesToCollect(lay_val);
+ List<String> attributesNameList = IterableExtensions.<String>toList(((Iterable<String>)Conversions.doWrapArray(t.attributeNames)));
+ List<String> attributesValueList = IterableExtensions.<String>toList(((Iterable<String>)Conversions.doWrapArray(t.attributeValues)));
+ String _name = lay_val.getBase_Class().getName();
+ String _plus = ("self." + _name);
+ String _plus_1 = (_plus + "=tf.keras.layers.");
+ String _name_1 = lay_val.eClass().getName();
+ String DisplayInit = (_plus_1 + _name_1);
+ String Display = "";
+ int modificationState = 0;
+ int in = 0;
+ for (final String step : attributesValueList) {
+ {
+ boolean _equals = attributesNameList.get(in).equals("hidden_size");
+ if (_equals) {
+ System.err.println(step);
+ String DisplayHiddenSize = (step + ",");
+ String _Display = Display;
+ Display = (_Display + DisplayHiddenSize);
+ modificationState++;
+ }
+ int _in = in;
+ in = (_in + 1);
+ }
+ }
+ int ind = 0;
+ for (final String step_1 : attributesValueList) {
+ {
+ if (((GenCheck.isZeroForStringL(step_1) || GenCheck.isNullOrEmptyForString(step_1)) || GenCheck.isFalseForString(step_1))) {
+ } else {
+ if (((attributesNameList.get(ind).equals("name") || attributesNameList.get(ind).equals("hidden_size")) || attributesNameList.get(ind).equals("num_layers"))) {
+ } else {
+ boolean _endsWith = attributesNameList.get(ind).endsWith("_pt");
+ boolean _not = (!_endsWith);
+ if (_not) {
+ modificationState++;
+ if ((step_1.equals("true") || step_1.equals("false"))) {
+ String DisplayInit1 = attributesNameList.get(ind);
+ boolean _equals = step_1.equals("false");
+ if (_equals) {
+ String _substring = step_1.substring(1, step_1.length());
+ String newstep = ("F" + _substring);
+ String DisplayStateZero1 = (((DisplayInit1 + "=") + newstep) + ",");
+ Display = (Display + DisplayStateZero1);
+ } else {
+ String _substring_1 = step_1.substring(1, step_1.length());
+ String newstep_1 = ("T" + _substring_1);
+ String DisplayStateZero2 = (((DisplayInit1 + "=") + newstep_1) + ",");
+ Display = (Display + DisplayStateZero2);
+ }
+ } else {
+ boolean _equals_1 = attributesNameList.get(ind).equals("input_size");
+ if (_equals_1) {
+ String DisplayInit3 = "input_shape";
+ String DisplayStateZero3 = (((DisplayInit3 + "=[") + step_1) + "],");
+ Display = (Display + DisplayStateZero3);
+ } else {
+ String DisplayInit0 = attributesNameList.get(ind);
+ String DisplayStateZero0 = (((DisplayInit0 + "=") + step_1) + ",");
+ Display = (Display + DisplayStateZero0);
+ }
+ }
+ }
+ }
+ }
+ ind = (ind + 1);
+ }
+ }
+ String displayFinal = "";
+ if ((modificationState != 0)) {
+ int _length = Display.length();
+ int _minus = (_length - 1);
+ String _substring = Display.substring(0, _minus);
+ String _plus_2 = ((DisplayInit + "(") + _substring);
+ String _plus_3 = (_plus_2 + ")");
+ displayFinal = _plus_3;
+ } else {
+ displayFinal = DisplayInit;
+ }
+ return displayFinal;
+ }
+
+ public static LayerInfo lstmAttributesToCollect(final Recurrent_layers lay_val) {
+ final int nbrOfAttributes = ((Object[])Conversions.unwrapArray(lay_val.eClass().getEAllAttributes(), Object.class)).length;
+ LayerInfo layerInformations = new LayerInfo(nbrOfAttributes);
+ String[] attributesNameList = layerInformations.attributeNames;
+ String[] attributesValueList = layerInformations.attributeValues;
+ int l = 0;
+ EList<EAttribute> _eAllAttributes = lay_val.eClass().getEAllAttributes();
+ for (final EAttribute valu : _eAllAttributes) {
+ {
+ String attri_name = valu.getName();
+ attributesNameList[l] = attri_name;
+ Object attri_val = lay_val.eGet(valu);
+ attributesValueList[l] = String.valueOf(attri_val);
+ l = (l + 1);
+ }
+ }
+ return layerInformations;
+ }
+}
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/.classpath b/aiml/org.eclipse.papyrus.aiml.profile/.classpath
new file mode 100644
index 0000000..8d613a1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/.project b/aiml/org.eclipse.papyrus.aiml.profile/.project
new file mode 100644
index 0000000..c698101
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.aiml.profile</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/.settings/org.eclipse.jdt.core.prefs b/aiml/org.eclipse.papyrus.aiml.profile/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..0fee6a9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,15 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/META-INF/MANIFEST.MF b/aiml/org.eclipse.papyrus.aiml.profile/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..8acfbf1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/META-INF/MANIFEST.MF
@@ -0,0 +1,85 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.uml2.types;visibility:=reexport,
+ org.eclipse.uml2.uml;bundle-version="5.0.0";visibility:=reexport,
+ org.eclipse.papyrus.uml.properties;bundle-version="3.0.0"
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-ClassPath: .
+Bundle-Version: 0.7.0.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-Activator: org.eclipse.papyrus.aiml.profile.Activator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.aiml.profile;singleton:=true
+Automatic-Module-Name: org.eclipse.papyrus.aiml.profile
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.papyrus.aiml.profile,
+ org.eclipse.papyrus.aiml.profile.AIML,
+ org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers,
+ org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.util,
+ org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers,
+ org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Distance_functions,
+ org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers,
+ org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints,
+ org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers,
+ org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers,
+ org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Linear_layers,
+ org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Loss_functions,
+ org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Module,
+ org.eclipse.papyrus.aiml.profile.AIML.Module.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Module.util,
+ org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations,
+ org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers,
+ org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Padding_layers,
+ org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers,
+ org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers,
+ org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.util,
+ org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations,
+ org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers,
+ org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Tensor,
+ org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Tensor.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers,
+ org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.util,
+ org.eclipse.papyrus.aiml.profile.AIML.Vision_layers,
+ org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.util,
+ org.eclipse.papyrus.aiml.profile.AIML.datatypes,
+ org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.datatypes.util,
+ org.eclipse.papyrus.aiml.profile.AIML.impl,
+ org.eclipse.papyrus.aiml.profile.AIML.util
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/build.properties b/aiml/org.eclipse.papyrus.aiml.profile/build.properties
new file mode 100644
index 0000000..d166f67
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/build.properties
@@ -0,0 +1,12 @@
+source.. = src/,\
+ src-gen/
+output.. = target/classes/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ profiles/,\
+ libraries/,\
+ plugin.properties,\
+ properties/,\
+ icons/,\
+ profile/
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/icons/aiml-16x16.png b/aiml/org.eclipse.papyrus.aiml.profile/icons/aiml-16x16.png
new file mode 100644
index 0000000..61c8fc4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/icons/aiml-16x16.png
Binary files differ
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/icons/aiml-16x16.svg b/aiml/org.eclipse.papyrus.aiml.profile/icons/aiml-16x16.svg
new file mode 100644
index 0000000..90a551d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/icons/aiml-16x16.svg
@@ -0,0 +1,361 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.2"
+ width="300"
+ height="300"
+ id="svg2"
+ inkscape:version="0.92.3 (2405546, 2018-03-11)"
+ sodipodi:docname="aiml-16x16.svg"
+ inkscape:export-filename="C:\Users\sli\Documents\Work\Papyrus\Software Designer\papyrus-designer-hash_aldo.png"
+ inkscape:export-xdpi="299.91537"
+ inkscape:export-ydpi="299.91537">
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1114"
+ inkscape:window-height="853"
+ id="namedview53"
+ showgrid="false"
+ inkscape:zoom="1.1451746"
+ inkscape:cx="171.26294"
+ inkscape:cy="32.995663"
+ inkscape:window-x="428"
+ inkscape:window-y="79"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="2-7"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0" />
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient6078-7-52-5-7-4">
+ <stop
+ id="stop6080-1-3-6-4-2"
+ style="stop-color:#98bf0c;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop6082-0-24-0-0-7"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4487-2-17-7-1-4-93">
+ <stop
+ id="stop4489-8-40-2-1-8-1"
+ style="stop-color:#009bba;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4491-2-9-1-9-8-9"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5467-45-65">
+ <stop
+ style="stop-color:#1f211c;stop-opacity:1;"
+ offset="0"
+ id="stop5469-5-02" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop5471-17-8" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3340">
+ <stop
+ style="stop-color:#1f211c;stop-opacity:1;"
+ offset="0"
+ id="stop3342" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3344" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6078-7-52-5-7-4"
+ id="linearGradient3122"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.86436155,0,0,0.86436155,-63.693388,67.13087)"
+ x1="306.31415"
+ y1="189.24405"
+ x2="282.51758"
+ y2="2.6277814" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4487-2-17-7-1-4-93"
+ id="linearGradient3124"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.86436155,0,0,0.86436155,-63.693395,67.13087)"
+ x1="336.48462"
+ y1="203.12489"
+ x2="335.16684"
+ y2="73.530258" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5467-45-65"
+ id="linearGradient3126"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.86436155,0,0,0.86436155,-63.693395,67.13087)"
+ x1="238.62624"
+ y1="155.18745"
+ x2="243.81149"
+ y2="91.254097" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5467-45-65"
+ id="linearGradient3128"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4499202,0,0,0.4499202,95.285803,147.36302)"
+ x1="231.79408"
+ y1="67.509285"
+ x2="237.63275"
+ y2="26.82687" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6078-7-52-5-7-4-1"
+ id="linearGradient3350"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.86436155,0,0,0.86436155,-63.693388,67.13087)"
+ x1="306.31415"
+ y1="189.24405"
+ x2="282.51758"
+ y2="2.6277814" />
+ <linearGradient
+ id="linearGradient6078-7-52-5-7-4-1">
+ <stop
+ id="stop6080-1-3-6-4-2-7"
+ style="stop-color:#98bf0c;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop6082-0-24-0-0-7-4"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4487-2-17-7-1-4-93-0"
+ id="linearGradient3352"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.86436155,0,0,0.86436155,-63.693395,67.13087)"
+ x1="336.48462"
+ y1="203.12489"
+ x2="335.16684"
+ y2="73.530258" />
+ <linearGradient
+ id="linearGradient4487-2-17-7-1-4-93-0">
+ <stop
+ id="stop4489-8-40-2-1-8-1-9"
+ style="stop-color:#009bba;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop4491-2-9-1-9-8-9-4"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5467-45-65-8"
+ id="linearGradient3354"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.86436155,0,0,0.86436155,-63.693395,67.13087)"
+ x1="238.62624"
+ y1="155.18745"
+ x2="243.81149"
+ y2="91.254097" />
+ <linearGradient
+ id="linearGradient5467-45-65-8">
+ <stop
+ style="stop-color:#1f211c;stop-opacity:1;"
+ offset="0"
+ id="stop5469-5-02-8" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop5471-17-8-2" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5467-45-65-8"
+ id="linearGradient3356"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4499202,0,0,0.4499202,95.285803,147.36302)"
+ x1="231.79408"
+ y1="67.509285"
+ x2="237.63275"
+ y2="26.82687" />
+ <linearGradient
+ id="linearGradient3342">
+ <stop
+ style="stop-color:#1f211c;stop-opacity:1;"
+ offset="0"
+ id="stop3344-4" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="1"
+ id="stop3346" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5467-45-65-8"
+ id="linearGradient3090"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.93826246,0,0,0.87686743,849.58383,60.096489)"
+ x1="231.79408"
+ y1="67.509285"
+ x2="237.63275"
+ y2="26.82687" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5467-45-65-8"
+ id="linearGradient3093"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.8025374,0,0,1.6845887,518.049,-96.271149)"
+ x1="238.62624"
+ y1="155.18745"
+ x2="243.81149"
+ y2="91.254097" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4487-2-17-7-1-4-93-0"
+ id="linearGradient3096"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.8025374,0,0,1.6845887,518.049,-96.271149)"
+ x1="336.48462"
+ y1="203.12489"
+ x2="335.16684"
+ y2="73.530258" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6078-7-52-5-7-4-1"
+ id="linearGradient3099"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.8025374,0,0,1.6845887,518.04902,-96.271149)"
+ x1="306.31415"
+ y1="189.24405"
+ x2="282.51758"
+ y2="2.6277814" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient6078-7-52-5-7-4"
+ id="linearGradient3143"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.86436155,0,0,0.86436155,-63.693388,67.13087)"
+ x1="306.31415"
+ y1="189.24405"
+ x2="282.51758"
+ y2="2.6277814" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4487-2-17-7-1-4-93"
+ id="linearGradient3145"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.86436155,0,0,0.86436155,-63.693395,67.13087)"
+ x1="336.48462"
+ y1="203.12489"
+ x2="335.16684"
+ y2="73.530258" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5467-45-65"
+ id="linearGradient3147"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.86436155,0,0,0.86436155,-63.693395,67.13087)"
+ x1="238.62624"
+ y1="155.18745"
+ x2="243.81149"
+ y2="91.254097" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5467-45-65"
+ id="linearGradient3149"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.4499202,0,0,0.4499202,95.285803,147.36302)"
+ x1="231.79408"
+ y1="67.509285"
+ x2="237.63275"
+ y2="26.82687" />
+ </defs>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ transform="translate(886.32636,-288.59997)"
+ id="layer2" />
+ <g
+ transform="matrix(0.65065408,0,0,0.6957592,913.0888,601.14772)"
+ id="1-9"
+ style="fill:#9c9e9f;fill-opacity:1">
+ <g
+ id="2-7"
+ style="font-style:normal;font-weight:bold;font-size:90px;font-family:'Liberation Sans Narrow';text-align:start;text-anchor:start;fill:#9c9e9f">
+ <g
+ id="g3270-4"
+ transform="matrix(3.1393502,0,0,2.9339277,-1716.8867,-1337.6369)"
+ style="opacity:0.5">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient3143);fill-opacity:1;stroke:none"
+ id="path3031-7-5-1-8"
+ d="m 170.4552,273.89087 c -0.0552,-19.9253 8.25185,-38.93343 19.1893,-55.24878 3.10516,-5.3021 8.37808,-9.42582 9.68999,-15.65649 1.33582,-4.79102 -2.94424,-6.91969 -7.88207,-7.26702 -6.39659,-0.74146 -14.20202,-2.7884 -16.8149,-9.39191 -1.97367,-6.74391 2.46299,-13.85284 8.05544,-17.40115 6.22916,-3.97466 13.68382,-5.49426 20.9663,-5.95905 1.549,-0.0892 1.84332,-0.17206 5.46367,0.0494 6.95068,0.29055 13.48526,5.04236 15.30129,11.85471 2.64956,9.21682 0.81292,19.18629 -2.66253,27.93738 -4.26292,10.29718 -10.69502,19.54187 -17.8991,27.9818 -8.31731,11.08804 -11.4163,25.38509 -10.32509,39.05004 -7.81659,2.30834 -19.22891,4.14444 -23.0823,4.05106 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient3145);fill-opacity:1;stroke:none"
+ id="path3029-6-0-4-6"
+ d="m 195.26467,269.26425 c -1.31017,-15.35067 3.07505,-31.53227 13.76603,-42.91607 7.80963,-10.01138 14.85775,-21.20841 17.40753,-33.81375 1.51623,-8.17574 1.71265,-17.79667 -4.10578,-24.42052 -1.0537,-1.26018 -5.74736,-3.76752 -1.68149,-2.30694 4.17722,1.16472 6.41874,3.69589 8.60337,6.72655 11.57621,14.91935 15.61555,35.47722 9.80943,53.52972 -6.29746,20.51829 -23.74144,36.4284 -43.79909,43.20101 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient3147);fill-opacity:1;stroke:none"
+ id="path3045-1-9-0-2-5"
+ d="m 107.46748,235.60585 c 0.58313,-18.71257 10.28274,-37.03864 25.89626,-47.52231 12.38891,-8.51861 27.3572,-12.45393 42.18193,-13.80383 -2.54561,4.00525 -4.1248,9.45099 -1.78496,13.98335 1.34432,3.06808 5.46883,4.6021 4.98615,4.87012 -21.31259,0.0188 -43.31305,7.54678 -58.0799,23.34878 -5.5153,5.82742 -9.86615,12.6909 -13.15918,19.99075 -0.0477,-0.2862 -0.0354,-0.57766 -0.0404,-0.86686 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:url(#linearGradient3149);fill-opacity:1;stroke:none"
+ id="path3027-4-0-3-0"
+ d="m 199.21723,178.2402 c -1.20476,-0.1342 -2.17052,-0.44343 -2.8576,-0.915 -0.30618,-0.21016 -0.64307,-0.57942 -0.78608,-0.86165 -0.11887,-0.23455 -0.13203,-0.30257 -0.13203,-0.68248 0,-0.37305 0.0144,-0.45154 0.12542,-0.67732 0.65619,-1.33614 3.13045,-2.22288 5.54456,-1.98709 1.39653,0.13641 2.5031,0.56228 3.17232,1.22092 0.4471,0.44004 0.57477,0.71625 0.57477,1.24362 0,0.53119 -0.12573,0.79896 -0.59612,1.2696 -0.87863,0.87908 -2.54914,1.42833 -4.29009,1.41058 -0.34204,-0.004 -0.68185,-0.0129 -0.75515,-0.0212 z" />
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:171.97537231px;line-height:0%;font-family:Arial;-inkscape-font-specification:Arial;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#0099ba;fill-opacity:1;stroke:none;stroke-width:1.91083741"
+ x="-1286.4893"
+ y="-453.35599"
+ id="text3020-4-0"
+ transform="scale(1.0340806,0.9670426)"><tspan
+ sodipodi:role="line"
+ x="-1286.4893"
+ y="-453.35599"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:212.05375671px;line-height:1.25;font-family:'Aldo the Apache';-inkscape-font-specification:'Aldo the Apache, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#626262;fill-opacity:1;stroke-width:1.91083741"
+ id="tspan866-8">#AI</tspan></text>
+ </g>
+ <g
+ id="3-1"
+ style="font-style:normal;font-weight:normal;font-size:13.80000019px;font-family:Calibri;text-align:start;text-anchor:start;fill:#9c9e9f" />
+ </g>
+</svg>
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/plugin.properties b/aiml/org.eclipse.papyrus.aiml.profile/plugin.properties
new file mode 100644
index 0000000..4f00e9e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/plugin.properties
@@ -0,0 +1,10 @@
+# Copyright (c) CEA LIST.
+#
+# This program and the accompanying materials are made
+# available under the terms of the Eclipse Public License 2.0
+# which is available at https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+pluginName=Papyrus AIML profile
+providerName=Eclipse Modeling Project
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/plugin.xml b/aiml/org.eclipse.papyrus.aiml.profile/plugin.xml
new file mode 100644
index 0000000..6af8411
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/plugin.xml
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.eclipse.emf.ecore.uri_mapping">
+ <mapping
+ source="pathmap://AIML_PROFILES/"
+ target="platform:/plugin/org.eclipse.papyrus.aiml.profile/profile/"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.papyrus.uml.extensionpoints.UMLProfile">
+ <profile
+ description="AI (neural network) profile"
+ iconpath="icons/aiml-16x16.png"
+ name="AIML"
+ path="pathmap://AIML_PROFILES/AIML.profile.uml"
+ provider="CEA LIST">
+ </profile>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/module/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_u1dx8JT1Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/module/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/tensor/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_38DjAJT1Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/tensor/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/pooling/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_Deu8AJT2Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/pooling/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/convolution/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_Nr2NYJOPEeqnY_bZg2Ebjg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/convolution/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/padding/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_2_xEcJT2Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/padding/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/nonlinear/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_H7fbMJT2Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/nonlinear/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/softminmax/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_H7fbMJT2Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/softminmax/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/normalization/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_N5zMsJT2Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/normalization/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/recurrent/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_RAjiQJT2Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/recurrent/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/transformer/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_T8DDAJT2Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/transformer/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/linear/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_WwqfsJT2Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/linear/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/dropout/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_ZUMzcJT2Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/dropout/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/sparse/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_cKwJ0JT2Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/sparse/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/distance/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_fjUoIJT2Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/distance/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/loss/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_nZcP0JT2Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/loss/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/vision/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_q6FsEJT2Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/vision/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.uml2.uml.generated_package">
+ <profile
+ uri="http://www.eclipse.org/papyrus/AIML/dataparallel/1"
+ location="pathmap://AIML_PROFILES/AIML.profile.uml#_wBUroJT2Eeq5BK6mmo2rWg"/>
+ </extension>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated AIML -->
+ <package
+ uri="http://www.eclipse.org/papyrus/AIML/dataparallel/1"
+ class="org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage"
+ genModel="profile/AIML.genmodel"/>
+ </extension>
+</plugin>
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.ecore b/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.ecore
new file mode 100644
index 0000000..f558ce0
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.ecore
@@ -0,0 +1,845 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="AIML" nsURI="http://www.eclipse.org/papyrus/AIML/1" nsPrefix="AIML">
+ <eClassifiers xsi:type="ecore:EClass" name="SmoothL1Loss" eSuperTypes="#//Loss_functions/Loss_functions_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SoftMarginLoss" eSuperTypes="#//Loss_functions/Loss_functions_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiLabelSoftMarginLoss" eSuperTypes="#//Loss_functions/Loss_functions_1_2"/>
+ <eSubpackages name="Module" nsURI="http://www.eclipse.org/papyrus/AIML/module/1"
+ nsPrefix="AIML.Module">
+ <eClassifiers xsi:type="ecore:EClass" name="Model">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="data" ordered="false"
+ lowerBound="1" eType="#//Tensor/Tensor"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requires_grad" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subModule" ordered="false"
+ upperBound="-1" eType="#//Module/Model"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="optimizer" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loss" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="Tensor" nsURI="http://www.eclipse.org/papyrus/AIML/tensor/1"
+ nsPrefix="AIML.Tensor">
+ <eClassifiers xsi:type="ecore:EEnum" name="EDType">
+ <eLiterals name="float32"/>
+ <eLiterals name="float64" value="1"/>
+ <eLiterals name="float16" value="2"/>
+ <eLiterals name="uint8" value="3"/>
+ <eLiterals name="int8" value="4"/>
+ <eLiterals name="int16" value="5"/>
+ <eLiterals name="int32" value="6"/>
+ <eLiterals name="int64" value="7"/>
+ <eLiterals name="bool" value="8"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ETensorTypes">
+ <eLiterals name="FloatTensor"/>
+ <eLiterals name="DoubleTensor" value="1"/>
+ <eLiterals name="HalfTensor" value="2"/>
+ <eLiterals name="ByteTensor" value="3"/>
+ <eLiterals name="CharTensor" value="4"/>
+ <eLiterals name="ShortTensor" value="5"/>
+ <eLiterals name="IntTensor" value="6"/>
+ <eLiterals name="LongTensor" value="7"/>
+ <eLiterals name="BoolTensor" value="8"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Tensor">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="data" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dtype" ordered="false"
+ eType="#//Tensor/EDType"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="device" ordered="false"
+ eType="#//datatypes/Device"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="requires_grad" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="pin_memory" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="shape" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+ eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="datatypes" nsURI="http:///AIML/datatypes.ecore" nsPrefix="AIML.datatypes">
+ <eClassifiers xsi:type="ecore:EClass" name="Device">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="Pooling_layers" nsURI="http://www.eclipse.org/papyrus/AIML/pooling/1"
+ nsPrefix="AIML.Pooling_layers">
+ <eClassifiers xsi:type="ecore:EClass" name="Pooling_layers" abstract="true" eSuperTypes="#//Module/Model"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Pooling_layers_1" abstract="true"
+ eSuperTypes="#//Pooling_layers/Pooling_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kernel_size" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Pooling_layers_2" abstract="true"
+ eSuperTypes="#//Pooling_layers/Pooling_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="output_size" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AdaptativeMaxPool" abstract="true"
+ eSuperTypes="#//Pooling_layers/Pooling_layers_2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="return_indices" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AdaptativeMaxPool1d" eSuperTypes="#//Pooling_layers/AdaptativeMaxPool"/>
+ <eClassifiers xsi:type="ecore:EClass" name="AdaptativeMaxPool2d" eSuperTypes="#//Pooling_layers/AdaptativeMaxPool"/>
+ <eClassifiers xsi:type="ecore:EClass" name="AdaptativeMaxPool3d" eSuperTypes="#//Pooling_layers/AdaptativeMaxPool"/>
+ <eClassifiers xsi:type="ecore:EClass" name="AdaptiveAvgPool3d" eSuperTypes="#//Pooling_layers/Pooling_layers_2"/>
+ <eClassifiers xsi:type="ecore:EClass" name="AdaptiveAvgPool2d" eSuperTypes="#//Pooling_layers/Pooling_layers_2"/>
+ <eClassifiers xsi:type="ecore:EClass" name="AdaptiveAvgPool1d" eSuperTypes="#//Pooling_layers/Pooling_layers_2"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Pooling_layers_1_1" abstract="true"
+ eSuperTypes="#//Pooling_layers/Pooling_layers_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stride" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MaxPool1d" eSuperTypes="#//Pooling_layers/MaxPool"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MaxPool" abstract="true" eSuperTypes="#//Pooling_layers/Pooling_layers_1_1_1_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dilation" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="return_indices" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Pooling_layers_1_1_1_1" abstract="true"
+ eSuperTypes="#//Pooling_layers/Pooling_layers_1_1_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="ceil_mode" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="pool_size" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Pooling_layers_1_1_1" abstract="true"
+ eSuperTypes="#//Pooling_layers/Pooling_layers_1_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="padding" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="padding_k" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MaxUnpool1d" eSuperTypes="#//Pooling_layers/Pooling_layers_1_1_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="AvgPool1d" eSuperTypes="#//Pooling_layers/Pooling_layers_1_1_2_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Pooling_layers_1_1_2_1" abstract="true"
+ eSuperTypes="#//Pooling_layers/Pooling_layers_1_1_1_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="count_include_pad" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MaxUnpool2d" eSuperTypes="#//Pooling_layers/Pooling_layers_1_1_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MaxUnpool3d" eSuperTypes="#//Pooling_layers/Pooling_layers_1_1_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Pooling_layers_1_1_2" abstract="true"
+ eSuperTypes="#//Pooling_layers/Pooling_layers_1_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="ceil_mode" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LPPool1d" eSuperTypes="#//Pooling_layers/Pooling_layers_1_1_2"/>
+ <eClassifiers xsi:type="ecore:EClass" name="LPPool2d" eSuperTypes="#//Pooling_layers/Pooling_layers_1_1_2"/>
+ <eClassifiers xsi:type="ecore:EClass" name="AvgPool2d3d" abstract="true" eSuperTypes="#//Pooling_layers/Pooling_layers_1_1_2_1">
+ <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details key="originalName" value="AvgPool2d/3d"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="divisor_override" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AvgPool2d" eSuperTypes="#//Pooling_layers/AvgPool2d3d"/>
+ <eClassifiers xsi:type="ecore:EClass" name="AvgPool3d" eSuperTypes="#//Pooling_layers/AvgPool2d3d"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MaxPool2d" eSuperTypes="#//Pooling_layers/MaxPool"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MaxPool3d" eSuperTypes="#//Pooling_layers/MaxPool"/>
+ <eClassifiers xsi:type="ecore:EClass" name="FractionalMaxPool2d" eSuperTypes="#//Pooling_layers/Pooling_layers_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="output_size" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="output_ratio" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="return_indices" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="Convolution_layers" nsURI="http://www.eclipse.org/papyrus/AIML/convolution/1"
+ nsPrefix="AIML.Convolution_layers">
+ <eClassifiers xsi:type="ecore:EClass" name="Convolution" abstract="true" eSuperTypes="#//Convolution_layers/Convolution_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="in_channels" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="groups" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="biais" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="padding_mode" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="data_format" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dilation_rate" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activation" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bias_initializer" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activity_regularizer"
+ ordered="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bias_constraint" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bias_regularizer" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Convolution_layers" abstract="true"
+ eSuperTypes="#//Module/Model">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kernel_size" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stride" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="padding" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dilation" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Unfold" eSuperTypes="#//Convolution_layers/Convolution_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Fold" eSuperTypes="#//Convolution_layers/Convolution_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="output_size" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Conv2d" eSuperTypes="#//Convolution_layers/basic"/>
+ <eClassifiers xsi:type="ecore:EClass" name="basic" abstract="true" eSuperTypes="#//Convolution_layers/LayerWithFilter">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kernel_initializer" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="kernel_constraint" ordered="false"
+ lowerBound="1" eType="#//Layer_weight_constraints/constraints"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kernel_regularizer" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LayerWithFilter" abstract="true" eSuperTypes="#//Convolution_layers/Convolution">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="out_channels" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Conv3d" eSuperTypes="#//Convolution_layers/basic"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ConvTranspose1d" eSuperTypes="#//Convolution_layers/LayerWithFilter"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ConvTranspose2d" eSuperTypes="#//Convolution_layers/transpose"/>
+ <eClassifiers xsi:type="ecore:EClass" name="transpose" abstract="true" eSuperTypes="#//Convolution_layers/basic">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="output_padding" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConvTranspose3d" eSuperTypes="#//Convolution_layers/transpose"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Conv1d" eSuperTypes="#//Convolution_layers/basic"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Separable" abstract="true" eSuperTypes="#//Convolution_layers/LayerWithFilter">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="depth_multiplier" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="depthwise_initializer"
+ ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="pointwise_initializer"
+ ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="depthwise_regularizer"
+ ordered="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="poitnwise_regularizer"
+ ordered="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="depthwise_constraint"
+ ordered="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="pointwise_constraint"
+ ordered="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SeparableConv2D" eSuperTypes="#//Convolution_layers/Separable"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SeparableConv1D" eSuperTypes="#//Convolution_layers/Separable"/>
+ <eClassifiers xsi:type="ecore:EClass" name="DepthwiseConv2D" eSuperTypes="#//Convolution_layers/Convolution">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="depth_multiplier" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="depthwise_initializer"
+ ordered="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="depthwise_regularizer"
+ ordered="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="depthwise_constraint"
+ ordered="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="Layer_weight_constraints" nsURI="http:///AIML/Layer_weight_constraints.ecore"
+ nsPrefix="AIML.Layer_weight_constraints">
+ <eClassifiers xsi:type="ecore:EClass" name="min_max_norm" eSuperTypes="#//Layer_weight_constraints/NormWithMaxValue">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="min_value" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="rate" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NormWithMaxValue" abstract="true"
+ eSuperTypes="#//Layer_weight_constraints/norm">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="max_value" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="norm" abstract="true" eSuperTypes="#//Layer_weight_constraints/constraints">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="axis" ordered="false"
+ lowerBound="1" upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="max_norm" eSuperTypes="#//Layer_weight_constraints/NormWithMaxValue"/>
+ <eClassifiers xsi:type="ecore:EClass" name="non_neg" eSuperTypes="#//Layer_weight_constraints/constraints"/>
+ <eClassifiers xsi:type="ecore:EClass" name="radial_constraint" eSuperTypes="#//Layer_weight_constraints/constraints"/>
+ <eClassifiers xsi:type="ecore:EClass" name="unit_norm" eSuperTypes="#//Layer_weight_constraints/norm"/>
+ <eClassifiers xsi:type="ecore:EClass" name="constraints" abstract="true"/>
+ </eSubpackages>
+ <eSubpackages name="Padding_layers" nsURI="http://www.eclipse.org/papyrus/AIML/padding/1"
+ nsPrefix="AIML.Padding_layers">
+ <eClassifiers xsi:type="ecore:EClass" name="Padding_layers" abstract="true" eSuperTypes="#//Module/Model">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="padding" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ReflectionPad1d" eSuperTypes="#//Padding_layers/Padding_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ReflectionPad2d" eSuperTypes="#//Padding_layers/Padding_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ReplicationPad1d" eSuperTypes="#//Padding_layers/Padding_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ReplicationPad2d" eSuperTypes="#//Padding_layers/Padding_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ReplicationPad3d" eSuperTypes="#//Padding_layers/Padding_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ZeroPad2d" eSuperTypes="#//Padding_layers/Padding_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ConstantPad1d" eSuperTypes="#//Padding_layers/Padding_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ConstantPad2d" eSuperTypes="#//Padding_layers/Padding_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ConstantPad3d" eSuperTypes="#//Padding_layers/Padding_layers"/>
+ </eSubpackages>
+ <eSubpackages name="NonLinearActivations" nsURI="http://www.eclipse.org/papyrus/AIML/nonlinear/1"
+ nsPrefix="AIML.NonLinearActivations">
+ <eClassifiers xsi:type="ecore:EClass" name="Nonlinear_activations_weightedsumnonlinearity"
+ abstract="true" eSuperTypes="#//Module/Model">
+ <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details key="originalName" value="Non-linear_activations_(weighted sum, nonlinearity)"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ELU" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alpha" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Nonlinear_activations_weightedsumnonlinearity_1"
+ abstract="true" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity">
+ <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details key="originalName" value="Non-linear_activations_(weighted sum, nonlinearity)_1"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="inplace" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="shrink" abstract="true" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lambd" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LeakyReLU" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="negative_slope" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LogSigmoid" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiheadAttention" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="embed_dim" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="num_heads" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dropout" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bias" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="add_bias_kv" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean">
+ <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details key="originalName" value="add_bias_kv "/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="add_zero_attn" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kdim" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="vdim" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PReLU" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="num_parameters" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="init" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ReLU" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ReLU6" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SELU" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="RReLU" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="upper" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CELU" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alpha" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GELU" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Sigmoid" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Softplus" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="beta" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="threshold" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Softshrink" eSuperTypes="#//NonLinearActivations/shrink"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Hardshrink" eSuperTypes="#//NonLinearActivations/shrink"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Softsign" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Tanhshrink" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Tanh" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Threshold" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="threshold" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Hardtanh" eSuperTypes="#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="min_val" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="max_val" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="SoftMinMaxActivations" nsURI="http://www.eclipse.org/papyrus/AIML/softminmax/1"
+ nsPrefix="AIML.SoftMinMaxActivations">
+ <eClassifiers xsi:type="ecore:EClass" name="SoftMinMax" abstract="true" eSuperTypes="#//Module/Model"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SoftMinMax_1" abstract="true" eSuperTypes="#//SoftMinMaxActivations/SoftMinMax">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dim" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Softmin" eSuperTypes="#//SoftMinMaxActivations/SoftMinMax_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Softmax" eSuperTypes="#//SoftMinMaxActivations/SoftMinMax_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Softmax2d" eSuperTypes="#//SoftMinMaxActivations/SoftMinMax"/>
+ <eClassifiers xsi:type="ecore:EClass" name="LogSoftmax" eSuperTypes="#//SoftMinMaxActivations/SoftMinMax_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="AdaptiveLogSoftmaxWithLoss" eSuperTypes="#//SoftMinMaxActivations/SoftMinMax">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="in_features" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="n_classes" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="cutoffs" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="div_value" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="head_biais" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="Normalization_layers" nsURI="http://www.eclipse.org/papyrus/AIML/normalization/1"
+ nsPrefix="AIML.Normalization_layers">
+ <eClassifiers xsi:type="ecore:EClass" name="Normalization_layers" abstract="true"
+ eSuperTypes="#//Module/Model"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Normalization_layers_1" abstract="true"
+ eSuperTypes="#//Normalization_layers/Normalization_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="eps" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LayerNorm" eSuperTypes="#//Normalization_layers/Normalization_layers_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="normalized_shape" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementwise_affine" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LocalResponseNorm" eSuperTypes="#//Normalization_layers/Normalization_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="size" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alpha" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="beta" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="k" ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Normalization_layers_1_1" eSuperTypes="#//Normalization_layers/Normalization_layers_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="affine" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Normalization_layers_1_1_1" abstract="true"
+ eSuperTypes="#//Normalization_layers/Normalization_layers_1_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="num_features" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="momentum" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="track_running_stats"
+ ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean">
+ <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details key="originalName" value="track_running_stats "/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GroupNorm" eSuperTypes="#//Normalization_layers/Normalization_layers_1_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="num_groups" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="num_channels" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchNorm1d" eSuperTypes="#//Normalization_layers/Normalization_layers_1_1_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchNorm2d" eSuperTypes="#//Normalization_layers/Normalization_layers_1_1_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="BatchNorm3d" eSuperTypes="#//Normalization_layers/Normalization_layers_1_1_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="SyncBatchNorm" eSuperTypes="#//Normalization_layers/Normalization_layers_1_1_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="process_group" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer">
+ <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details key="originalName" value="process_group "/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InstanceNorm1d" eSuperTypes="#//Normalization_layers/Normalization_layers_1_1_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="InstanceNorm2d" eSuperTypes="#//Normalization_layers/Normalization_layers_1_1_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="InstanceNorm3d" eSuperTypes="#//Normalization_layers/Normalization_layers_1_1_1"/>
+ </eSubpackages>
+ <eSubpackages name="Recurrent_layers" nsURI="http://www.eclipse.org/papyrus/AIML/recurrent/1"
+ nsPrefix="AIML.Recurrent_layers">
+ <eClassifiers xsi:type="ecore:EClass" name="Recurrent_layers" abstract="true"
+ eSuperTypes="#//Module/Model">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="input_size" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="hidden_size" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bias_pt" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Recurrent_layers_1" abstract="true"
+ eSuperTypes="#//Recurrent_layers/Recurrent_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="num_layers" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="batch_first_pt" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dropout" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bidirectional_pt" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activation" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="recurrent_activation"
+ ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="use_bias" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kernel_initializer" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="recurrent_initializer"
+ ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bias_initializer" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="return_sequences" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="return_state" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="bidirectional_k" ordered="false"
+ eType="#//Recurrent_layers/Recurrent_layers_1"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="recurrent_dropout" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RNNCell" eSuperTypes="#//Recurrent_layers/Recurrent_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonlinearity" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LSTMCell" eSuperTypes="#//Recurrent_layers/Recurrent_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="GRUCell" eSuperTypes="#//Recurrent_layers/Recurrent_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="RNN" eSuperTypes="#//Recurrent_layers/Recurrent_layers_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nonlinearity" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LSTM" eSuperTypes="#//Recurrent_layers/Recurrent_layers_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="GRU" eSuperTypes="#//Recurrent_layers/Recurrent_layers_1"/>
+ </eSubpackages>
+ <eSubpackages name="Transformer_layers" nsURI="http://www.eclipse.org/papyrus/AIML/transformer/1"
+ nsPrefix="AIML.Transformer_layers">
+ <eClassifiers xsi:type="ecore:EClass" name="Transformer_layers" abstract="true"
+ eSuperTypes="#//Module/Model"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Transformer_layers_1" abstract="true"
+ eSuperTypes="#//Transformer_layers/Transformer_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="d_model" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nhead" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dim_feedforward" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dropout" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activation" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Transformer_layers_2" abstract="true"
+ eSuperTypes="#//Transformer_layers/Transformer_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="num_layers" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="norm" ordered="false"
+ eType="#//Normalization_layers/LayerNorm"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Transformer" eSuperTypes="#//Transformer_layers/Transformer_layers_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="num_encoder_layers" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer">
+ <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details key="originalName" value="num_encoder_layers "/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="num_decoder_layers" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer">
+ <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details key="originalName" value="num_decoder_layers "/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="custom_encoder" ordered="false"
+ lowerBound="1" eType="#//Transformer_layers/TransformerEncoder"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="custom_decoder" ordered="false"
+ lowerBound="1" eType="#//Transformer_layers/TransformerDecoder"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TransformerEncoder" eSuperTypes="#//Transformer_layers/Transformer_layers_2">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="encoder_layer" ordered="false"
+ lowerBound="1" eType="#//Transformer_layers/TransformerEncoderLayer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TransformerEncoderLayer" eSuperTypes="#//Transformer_layers/Transformer_layers_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="TransformerDecoder" eSuperTypes="#//Transformer_layers/Transformer_layers_2">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="decoder_layer" ordered="false"
+ lowerBound="1" eType="#//Transformer_layers/TransformerDecoderLayer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TransformerDecoderLayer" eSuperTypes="#//Transformer_layers/Transformer_layers_1"/>
+ </eSubpackages>
+ <eSubpackages name="Linear_layers" nsURI="http://www.eclipse.org/papyrus/AIML/linear/1"
+ nsPrefix="AIML.Linear_layers">
+ <eClassifiers xsi:type="ecore:EClass" name="Linear_layers" abstract="true" eSuperTypes="#//Module/Model"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Identity" eSuperTypes="#//Linear_layers/Linear_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Linear_layers_1" abstract="true" eSuperTypes="#//Linear_layers/Linear_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="out_features" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bias" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Linear" eSuperTypes="#//Linear_layers/Linear_layers_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="in_features" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="activation" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kernel_initializer" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bias_initializer" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Bilinear" eSuperTypes="#//Linear_layers/Linear_layers_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="in1_features" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="in2_features" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="Dropout_layers" nsURI="http://www.eclipse.org/papyrus/AIML/dropout/1"
+ nsPrefix="AIML.Dropout_layers">
+ <eClassifiers xsi:type="ecore:EClass" name="Dropout_layers" abstract="true" eSuperTypes="#//Module/Model">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="p" ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="inplace" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="noise_shape" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="seed" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Dropout" eSuperTypes="#//Dropout_layers/Dropout_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Dropout2d" eSuperTypes="#//Dropout_layers/Dropout_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Dropout3d" eSuperTypes="#//Dropout_layers/Dropout_layers"/>
+ <eClassifiers xsi:type="ecore:EClass" name="AlphaDropout" eSuperTypes="#//Dropout_layers/Dropout_layers"/>
+ </eSubpackages>
+ <eSubpackages name="Sparse_layers" nsURI="http://www.eclipse.org/papyrus/AIML/sparse/1"
+ nsPrefix="AIML.Sparse_layers">
+ <eClassifiers xsi:type="ecore:EClass" name="Sparse_layers" abstract="true" eSuperTypes="#//Module/Model">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="num_embeddings" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="embedding_dim" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="max_norm" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="norm_type" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real">
+ <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details key="originalName" value="norm_type "/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sparse" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="scale_grad_by_freq" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Embedding" eSuperTypes="#//Sparse_layers/Sparse_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="padding_idx" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EmbeddingBag" eSuperTypes="#//Sparse_layers/Sparse_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mode" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="include_last_offset"
+ ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="Distance_functions" nsURI="http://www.eclipse.org/papyrus/AIML/distance/1"
+ nsPrefix="AIML.Distance_functions">
+ <eClassifiers xsi:type="ecore:EClass" name="Distance_functions" abstract="true"
+ eSuperTypes="#//Module/Model">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="eps" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CosineSimilarity" eSuperTypes="#//Distance_functions/Distance_functions">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="dim" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PairwiseDistance" eSuperTypes="#//Distance_functions/Distance_functions">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="p" ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="keepdim" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="Loss_functions" nsURI="http://www.eclipse.org/papyrus/AIML/loss/1"
+ nsPrefix="AIML.Loss_functions">
+ <eClassifiers xsi:type="ecore:EClass" name="Loss_functions" abstract="true" eSuperTypes="#//Module/Model">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reduction" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Loss_functions_1" abstract="true"
+ eSuperTypes="#//Loss_functions/Loss_functions">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="size_average" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="reduce" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="L1Loss" eSuperTypes="#//Loss_functions/Loss_functions_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MSELoss" eSuperTypes="#//Loss_functions/Loss_functions_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="CTCLoss" eSuperTypes="#//Loss_functions/Loss_functions">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="blank" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="zero_infinity" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="KLDivLoss" eSuperTypes="#//Loss_functions/Loss_functions_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiLabelMarginLoss" eSuperTypes="#//Loss_functions/Loss_functions_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Loss_functions_1_1" eSuperTypes="#//Loss_functions/Loss_functions_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="margin" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Loss_functions_1_2" eSuperTypes="#//Loss_functions/Loss_functions_1">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="weight" ordered="false"
+ eType="#//Tensor/Tensor"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CosineEmbeddingLoss" eSuperTypes="#//Loss_functions/Loss_functions_1_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="MarginRankingLoss" eSuperTypes="#//Loss_functions/Loss_functions_1_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="HingeEmbeddingLoss" eSuperTypes="#//Loss_functions/Loss_functions_1_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="BCELoss" eSuperTypes="#//Loss_functions/Loss_functions_1_2"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Loss_functions_1_1_1" abstract="true"
+ eSuperTypes="#//Loss_functions/Loss_functions_1_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="p" ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiMarginLoss" eSuperTypes="#//Loss_functions/Loss_functions_1_1_1">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="weight" ordered="false"
+ eType="#//Tensor/Tensor"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TripletMarginLoss" eSuperTypes="#//Loss_functions/Loss_functions_1_1_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="swap" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Loss_functions_1_2_1" abstract="true"
+ eSuperTypes="#//Loss_functions/Loss_functions_1_2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="ignore_index" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CrossEntropyLoss" eSuperTypes="#//Loss_functions/Loss_functions_1_2_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="NLLLoss" eSuperTypes="#//Loss_functions/Loss_functions_1_2_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="PoissonNLLLoss" eSuperTypes="#//Loss_functions/Loss_functions_1_2">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="log_input" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="full" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="eps" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BCEWithLogitsLoss" eSuperTypes="#//Loss_functions/Loss_functions_1_2">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="pos_weight" ordered="false"
+ eType="#//Tensor/Tensor"/>
+ </eClassifiers>
+ </eSubpackages>
+ <eSubpackages name="Vision_layers" nsURI="http://www.eclipse.org/papyrus/AIML/vision/1"
+ nsPrefix="AIML.Vision_layers">
+ <eClassifiers xsi:type="ecore:EClass" name="Vision_layers" abstract="true" eSuperTypes="#//Module/Model"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Vision_layers_1" abstract="true" eSuperTypes="#//Vision_layers/Vision_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="size" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="scale_factor" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PixelShuffle" eSuperTypes="#//Vision_layers/Vision_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="upscale_factor" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Upsample" eSuperTypes="#//Vision_layers/Vision_layers_1">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mode" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="align_corners" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="UpsamplingNearest2d" eSuperTypes="#//Vision_layers/Vision_layers_1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="UpsamplingBilinear2d" eSuperTypes="#//Vision_layers/Vision_layers_1"/>
+ </eSubpackages>
+ <eSubpackages name="DataParallel_layers" nsURI="http://www.eclipse.org/papyrus/AIML/dataparallel/1"
+ nsPrefix="AIML.DataParallel_layers">
+ <eClassifiers xsi:type="ecore:EClass" name="DataParallel_layers" abstract="true"
+ eSuperTypes="#//Module/Model">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="module" ordered="false"
+ lowerBound="1" eType="#//Module/Model"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="device_ids" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="output_device" ordered="false"
+ upperBound="-1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DistributedDataParallel" eSuperTypes="#//DataParallel_layers/DataParallel_layers">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="broadcast_buffers" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="process_group" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bucket_cap_mb" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="find_unsused_parameters"
+ ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="check_reduction" ordered="false"
+ eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DataParallel" eSuperTypes="#//DataParallel_layers/DataParallel_layers"/>
+ </eSubpackages>
+ <eSubpackages name="Layer_weight_regularizers" nsURI="http:///AIML/Layer_weight_regularizers.ecore"
+ nsPrefix="AIML.Layer_weight_regularizers">
+ <eClassifiers xsi:type="ecore:EClass" name="l1" eSuperTypes="#//Layer_weight_regularizers/ReguWithl1"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ReguWithl1" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="l1" ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="l2" eSuperTypes="#//Layer_weight_regularizers/ReguWithl2"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ReguWithl2" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="l2" ordered="false" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="l1_l2" eSuperTypes="#//Layer_weight_regularizers/ReguWithl1 #//Layer_weight_regularizers/ReguWithl2"/>
+ </eSubpackages>
+ <eSubpackages name="Layer_weight_initializers" nsURI="http:///AIML/Layer_weight_initializers.ecore"
+ nsPrefix="AIML.Layer_weight_initializers">
+ <eClassifiers xsi:type="ecore:EClass" name="random_normal" eSuperTypes="#//Layer_weight_initializers/initializer_with_mean_stddev"/>
+ <eClassifiers xsi:type="ecore:EClass" name="initializer_with_mean_stddev" abstract="true"
+ eSuperTypes="#//Layer_weight_initializers/initializer_with_seed">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mean" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="stddev" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="initializer_with_seed" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="seed" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="random_uniform" eSuperTypes="#//Layer_weight_initializers/initializer_with_seed">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="minval" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxval" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="truncated_normal" eSuperTypes="#//Layer_weight_initializers/initializer_with_mean_stddev"/>
+ <eClassifiers xsi:type="ecore:EClass" name="zeros"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ones"/>
+ <eClassifiers xsi:type="ecore:EClass" name="glorot_normal" eSuperTypes="#//Layer_weight_initializers/initializer_with_seed"/>
+ <eClassifiers xsi:type="ecore:EClass" name="glorot_uniform" eSuperTypes="#//Layer_weight_initializers/initializer_with_seed"/>
+ <eClassifiers xsi:type="ecore:EClass" name="identity" eSuperTypes="#//Layer_weight_initializers/initializer_with_gain"/>
+ <eClassifiers xsi:type="ecore:EClass" name="initializer_with_gain" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="gain" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="orthogonal" eSuperTypes="#//Layer_weight_initializers/initializer_with_gain #//Layer_weight_initializers/initializer_with_seed"/>
+ <eClassifiers xsi:type="ecore:EClass" name="constant">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="variance_scaling" eSuperTypes="#//Layer_weight_initializers/initializer_with_seed">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="scale" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mode" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="distribution" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+ </eSubpackages>
+</ecore:EPackage>
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.genmodel b/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.genmodel
new file mode 100644
index 0000000..383f3f1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.genmodel
@@ -0,0 +1,643 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
+ copyrightText="Copyright (c) 2020 CEA LIST

All rights reserved. This program and the accompanying materials are
made available under the terms of the Eclipse Public License v2.0 which
accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/

SPDX-License-Identifier: EPL-2.0
"
+ modelDirectory="/org.eclipse.papyrus.aiml.profile/src-gen" modelPluginID="org.eclipse.papyrus.aiml.profile"
+ modelName="AIML" nonNLSMarkers="true" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ importerID="org.eclipse.uml2.uml.ecore.importer" complianceLevel="8.0" copyrightFields="false"
+ usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+ operationReflection="true" importOrganizing="true">
+ <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
+ <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
+ <details key="DUPLICATE_FEATURES" value="DISCARD"/>
+ <details key="ANNOTATION_DETAILS" value="PROCESS"/>
+ <details key="PROPERTY_DEFAULT_EXPRESSIONS" value="IGNORE"/>
+ <details key="DUPLICATE_FEATURE_INHERITANCE" value="DISCARD"/>
+ <details key="COMMENTS" value="PROCESS"/>
+ <details key="DERIVED_FEATURES" value="PROCESS"/>
+ <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
+ <details key="DUPLICATE_OPERATION_INHERITANCE" value="DISCARD"/>
+ <details key="REDEFINING_OPERATIONS" value="REPORT"/>
+ <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
+ <details key="UNION_PROPERTIES" value="REPORT"/>
+ <details key="DUPLICATE_OPERATIONS" value="DISCARD"/>
+ <details key="NON_API_INVARIANTS" value="IGNORE"/>
+ <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
+ <details key="SUBSETTING_PROPERTIES" value="REPORT"/>
+ <details key="OPERATION_BODIES" value="IGNORE"/>
+ <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+ <details key="UNTYPED_PROPERTIES" value="REPORT"/>
+ <details key="REDEFINING_PROPERTIES" value="REPORT"/>
+ <details key="INVOCATION_DELEGATES" value="IGNORE"/>
+ <details key="VALIDATION_DELEGATES" value="IGNORE"/>
+ </genAnnotations>
+ <foreignModel>AIML.profile.uml</foreignModel>
+ <genPackages xsi:type="genmodel:GenPackage" prefix="AIML" basePackage="org.eclipse.papyrus.aiml.profile"
+ disposableProviderFactory="true" ecorePackage="AIML.ecore#/">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//SmoothL1Loss"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//SoftMarginLoss"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//MultiLabelSoftMarginLoss"/>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Module" basePackage="org.eclipse.papyrus.aiml.profile.AIML"
+ disposableProviderFactory="true" ecorePackage="AIML.ecore#//Module">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Module/Model">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Module/Model/base_Class"/>
+ <genFeatures xsi:type="genmodel:GenFeature" property="Readonly" createChild="false"
+ ecoreFeature="ecore:EAttribute AIML.ecore#//Module/Model/name"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Module/Model/data"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Module/Model/requires_grad"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Module/Model/subModule"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Module/Model/optimizer"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Module/Model/loss"/>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Tensor" basePackage="org.eclipse.papyrus.aiml.profile.AIML"
+ disposableProviderFactory="true" ecorePackage="AIML.ecore#//Tensor">
+ <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="AIML.ecore#//Tensor/EDType">
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/EDType/float32"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/EDType/float64"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/EDType/float16"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/EDType/uint8"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/EDType/int8"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/EDType/int16"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/EDType/int32"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/EDType/int64"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/EDType/bool"/>
+ </genEnums>
+ <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="AIML.ecore#//Tensor/ETensorTypes">
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/ETensorTypes/FloatTensor"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/ETensorTypes/DoubleTensor"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/ETensorTypes/HalfTensor"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/ETensorTypes/ByteTensor"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/ETensorTypes/CharTensor"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/ETensorTypes/ShortTensor"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/ETensorTypes/IntTensor"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/ETensorTypes/LongTensor"/>
+ <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="AIML.ecore#//Tensor/ETensorTypes/BoolTensor"/>
+ </genEnums>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Tensor/Tensor">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Tensor/Tensor/data"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Tensor/Tensor/dtype"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Tensor/Tensor/device"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Tensor/Tensor/requires_grad"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Tensor/Tensor/pin_memory"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Tensor/Tensor/shape"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Tensor/Tensor/name"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Tensor/Tensor/base_Class"/>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Datatypes" basePackage="org.eclipse.papyrus.aiml.profile.AIML"
+ disposableProviderFactory="true" ecorePackage="AIML.ecore#//datatypes">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//datatypes/Device">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//datatypes/Device/type"/>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Pooling_layers" basePackage="org.eclipse.papyrus.aiml.profile.AIML"
+ disposableProviderFactory="true" ecorePackage="AIML.ecore#//Pooling_layers">
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Pooling_layers/Pooling_layers"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Pooling_layers/Pooling_layers_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/Pooling_layers_1/kernel_size"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Pooling_layers/Pooling_layers_2">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/Pooling_layers_2/output_size"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Pooling_layers/AdaptativeMaxPool">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/AdaptativeMaxPool/return_indices"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/AdaptativeMaxPool1d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/AdaptativeMaxPool2d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/AdaptativeMaxPool3d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/AdaptiveAvgPool3d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/AdaptiveAvgPool2d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/AdaptiveAvgPool1d"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Pooling_layers/Pooling_layers_1_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/Pooling_layers_1_1/stride"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/MaxPool1d"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Pooling_layers/MaxPool">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/MaxPool/dilation"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/MaxPool/return_indices"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Pooling_layers/Pooling_layers_1_1_1_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/Pooling_layers_1_1_1_1/ceil_mode"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/Pooling_layers_1_1_1_1/pool_size"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Pooling_layers/Pooling_layers_1_1_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/Pooling_layers_1_1_1/padding"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/Pooling_layers_1_1_1/padding_k"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/MaxUnpool1d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/AvgPool1d"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Pooling_layers/Pooling_layers_1_1_2_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/Pooling_layers_1_1_2_1/count_include_pad"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/MaxUnpool2d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/MaxUnpool3d"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Pooling_layers/Pooling_layers_1_1_2">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/Pooling_layers_1_1_2/ceil_mode"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/LPPool1d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/LPPool2d"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Pooling_layers/AvgPool2d3d">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/AvgPool2d3d/divisor_override"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/AvgPool2d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/AvgPool3d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/MaxPool2d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/MaxPool3d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Pooling_layers/FractionalMaxPool2d">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/FractionalMaxPool2d/output_size"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/FractionalMaxPool2d/output_ratio"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Pooling_layers/FractionalMaxPool2d/return_indices"/>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Convolution_layers"
+ basePackage="org.eclipse.papyrus.aiml.profile.AIML" disposableProviderFactory="true"
+ ecorePackage="AIML.ecore#//Convolution_layers">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Convolution_layers/Convolution">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution/in_channels"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution/groups"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution/biais"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution/padding_mode"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution/data_format"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution/dilation_rate"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution/activation"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution/bias_initializer"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution/activity_regularizer"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution/bias_constraint"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution/bias_regularizer"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Convolution_layers/Convolution_layers">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution_layers/kernel_size"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution_layers/stride"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution_layers/padding"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Convolution_layers/dilation"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Convolution_layers/Unfold"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Convolution_layers/Fold">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Fold/output_size"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Convolution_layers/Conv2d"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Convolution_layers/basic">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/basic/kernel_initializer"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Convolution_layers/basic/kernel_constraint"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/basic/kernel_regularizer"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Convolution_layers/LayerWithFilter">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/LayerWithFilter/out_channels"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Convolution_layers/Conv3d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Convolution_layers/ConvTranspose1d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Convolution_layers/ConvTranspose2d"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Convolution_layers/transpose">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/transpose/output_padding"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Convolution_layers/ConvTranspose3d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Convolution_layers/Conv1d"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Convolution_layers/Separable">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Separable/depth_multiplier"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Separable/depthwise_initializer"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Separable/pointwise_initializer"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Separable/depthwise_regularizer"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Separable/poitnwise_regularizer"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Separable/depthwise_constraint"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/Separable/pointwise_constraint"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Convolution_layers/SeparableConv2D"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Convolution_layers/SeparableConv1D"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Convolution_layers/DepthwiseConv2D">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/DepthwiseConv2D/depth_multiplier"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/DepthwiseConv2D/depthwise_initializer"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/DepthwiseConv2D/depthwise_regularizer"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Convolution_layers/DepthwiseConv2D/depthwise_constraint"/>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Layer_weight_constraints"
+ basePackage="org.eclipse.papyrus.aiml.profile.AIML" disposableProviderFactory="true"
+ ecorePackage="AIML.ecore#//Layer_weight_constraints">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_constraints/min_max_norm">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_constraints/min_max_norm/min_value"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_constraints/min_max_norm/rate"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Layer_weight_constraints/NormWithMaxValue">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_constraints/NormWithMaxValue/max_value"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Layer_weight_constraints/norm">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_constraints/norm/axis"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_constraints/max_norm"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_constraints/non_neg"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_constraints/radial_constraint"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_constraints/unit_norm"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Layer_weight_constraints/constraints"/>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Padding_layers" basePackage="org.eclipse.papyrus.aiml.profile.AIML"
+ disposableProviderFactory="true" ecorePackage="AIML.ecore#//Padding_layers">
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Padding_layers/Padding_layers">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Padding_layers/Padding_layers/padding"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Padding_layers/ReflectionPad1d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Padding_layers/ReflectionPad2d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Padding_layers/ReplicationPad1d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Padding_layers/ReplicationPad2d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Padding_layers/ReplicationPad3d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Padding_layers/ZeroPad2d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Padding_layers/ConstantPad1d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Padding_layers/ConstantPad2d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Padding_layers/ConstantPad3d"/>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="NonLinearActivations"
+ basePackage="org.eclipse.papyrus.aiml.profile.AIML" disposableProviderFactory="true"
+ ecorePackage="AIML.ecore#//NonLinearActivations">
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/ELU">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/ELU/alpha"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity_1/inplace"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//NonLinearActivations/shrink">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/shrink/lambd"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/LeakyReLU">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/LeakyReLU/negative_slope"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/LogSigmoid"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/MultiheadAttention">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/MultiheadAttention/embed_dim"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/MultiheadAttention/num_heads"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/MultiheadAttention/dropout"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/MultiheadAttention/bias"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/MultiheadAttention/add_bias_kv"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/MultiheadAttention/add_zero_attn"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/MultiheadAttention/kdim"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/MultiheadAttention/vdim"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/PReLU">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/PReLU/num_parameters"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/PReLU/init"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/ReLU"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/ReLU6"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/SELU"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/RReLU">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/RReLU/lower"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/RReLU/upper"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/CELU">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/CELU/alpha"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/GELU"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/Sigmoid"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/Softplus">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/Softplus/beta"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/Softplus/threshold"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/Softshrink"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/Hardshrink"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/Softsign"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/Tanhshrink"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/Tanh"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/Threshold">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/Threshold/threshold"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/Threshold/value"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//NonLinearActivations/Hardtanh">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/Hardtanh/min_val"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//NonLinearActivations/Hardtanh/max_val"/>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="SoftMinMaxActivations"
+ basePackage="org.eclipse.papyrus.aiml.profile.AIML" disposableProviderFactory="true"
+ ecorePackage="AIML.ecore#//SoftMinMaxActivations">
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//SoftMinMaxActivations/SoftMinMax"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//SoftMinMaxActivations/SoftMinMax_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//SoftMinMaxActivations/SoftMinMax_1/dim"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//SoftMinMaxActivations/Softmin"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//SoftMinMaxActivations/Softmax"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//SoftMinMaxActivations/Softmax2d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//SoftMinMaxActivations/LogSoftmax"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//SoftMinMaxActivations/AdaptiveLogSoftmaxWithLoss">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//SoftMinMaxActivations/AdaptiveLogSoftmaxWithLoss/in_features"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//SoftMinMaxActivations/AdaptiveLogSoftmaxWithLoss/n_classes"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//SoftMinMaxActivations/AdaptiveLogSoftmaxWithLoss/cutoffs"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//SoftMinMaxActivations/AdaptiveLogSoftmaxWithLoss/div_value"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//SoftMinMaxActivations/AdaptiveLogSoftmaxWithLoss/head_biais"/>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Normalization_layers"
+ basePackage="org.eclipse.papyrus.aiml.profile.AIML" disposableProviderFactory="true"
+ ecorePackage="AIML.ecore#//Normalization_layers">
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Normalization_layers/Normalization_layers"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Normalization_layers/Normalization_layers_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Normalization_layers/Normalization_layers_1/eps"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Normalization_layers/LayerNorm">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Normalization_layers/LayerNorm/normalized_shape"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Normalization_layers/LayerNorm/elementwise_affine"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Normalization_layers/LocalResponseNorm">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Normalization_layers/LocalResponseNorm/size"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Normalization_layers/LocalResponseNorm/alpha"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Normalization_layers/LocalResponseNorm/beta"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Normalization_layers/LocalResponseNorm/k"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Normalization_layers/Normalization_layers_1_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Normalization_layers/Normalization_layers_1_1/affine"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Normalization_layers/Normalization_layers_1_1_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Normalization_layers/Normalization_layers_1_1_1/num_features"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Normalization_layers/Normalization_layers_1_1_1/momentum"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Normalization_layers/Normalization_layers_1_1_1/track_running_stats"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Normalization_layers/GroupNorm">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Normalization_layers/GroupNorm/num_groups"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Normalization_layers/GroupNorm/num_channels"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Normalization_layers/BatchNorm1d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Normalization_layers/BatchNorm2d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Normalization_layers/BatchNorm3d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Normalization_layers/SyncBatchNorm">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Normalization_layers/SyncBatchNorm/process_group"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Normalization_layers/InstanceNorm1d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Normalization_layers/InstanceNorm2d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Normalization_layers/InstanceNorm3d"/>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Recurrent_layers" basePackage="org.eclipse.papyrus.aiml.profile.AIML"
+ disposableProviderFactory="true" ecorePackage="AIML.ecore#//Recurrent_layers">
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Recurrent_layers/Recurrent_layers">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers/input_size"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers/hidden_size"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers/bias_pt"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Recurrent_layers/Recurrent_layers_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers_1/num_layers"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers_1/batch_first_pt"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers_1/dropout"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers_1/bidirectional_pt"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers_1/activation"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers_1/recurrent_activation"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers_1/use_bias"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers_1/kernel_initializer"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers_1/recurrent_initializer"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers_1/bias_initializer"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers_1/return_sequences"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers_1/return_state"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Recurrent_layers/Recurrent_layers_1/bidirectional_k"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/Recurrent_layers_1/recurrent_dropout"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Recurrent_layers/RNNCell">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/RNNCell/nonlinearity"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Recurrent_layers/LSTMCell"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Recurrent_layers/GRUCell"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Recurrent_layers/RNN">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Recurrent_layers/RNN/nonlinearity"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Recurrent_layers/LSTM"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Recurrent_layers/GRU"/>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Transformer_layers"
+ basePackage="org.eclipse.papyrus.aiml.profile.AIML" disposableProviderFactory="true"
+ ecorePackage="AIML.ecore#//Transformer_layers">
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Transformer_layers/Transformer_layers"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Transformer_layers/Transformer_layers_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Transformer_layers/Transformer_layers_1/d_model"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Transformer_layers/Transformer_layers_1/nhead"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Transformer_layers/Transformer_layers_1/dim_feedforward"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Transformer_layers/Transformer_layers_1/dropout"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Transformer_layers/Transformer_layers_1/activation"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Transformer_layers/Transformer_layers_2">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Transformer_layers/Transformer_layers_2/num_layers"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Transformer_layers/Transformer_layers_2/norm"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Transformer_layers/Transformer">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Transformer_layers/Transformer/num_encoder_layers"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Transformer_layers/Transformer/num_decoder_layers"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Transformer_layers/Transformer/custom_encoder"/>
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Transformer_layers/Transformer/custom_decoder"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Transformer_layers/TransformerEncoder">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Transformer_layers/TransformerEncoder/encoder_layer"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Transformer_layers/TransformerEncoderLayer"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Transformer_layers/TransformerDecoder">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Transformer_layers/TransformerDecoder/decoder_layer"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Transformer_layers/TransformerDecoderLayer"/>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Linear_layers" basePackage="org.eclipse.papyrus.aiml.profile.AIML"
+ disposableProviderFactory="true" ecorePackage="AIML.ecore#//Linear_layers">
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Linear_layers/Linear_layers"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Linear_layers/Identity"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Linear_layers/Linear_layers_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Linear_layers/Linear_layers_1/out_features"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Linear_layers/Linear_layers_1/bias"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Linear_layers/Linear">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Linear_layers/Linear/in_features"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Linear_layers/Linear/activation"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Linear_layers/Linear/kernel_initializer"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Linear_layers/Linear/bias_initializer"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Linear_layers/Bilinear">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Linear_layers/Bilinear/in1_features"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Linear_layers/Bilinear/in2_features"/>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Dropout_layers" basePackage="org.eclipse.papyrus.aiml.profile.AIML"
+ disposableProviderFactory="true" ecorePackage="AIML.ecore#//Dropout_layers">
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Dropout_layers/Dropout_layers">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Dropout_layers/Dropout_layers/p"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Dropout_layers/Dropout_layers/inplace"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Dropout_layers/Dropout_layers/noise_shape"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Dropout_layers/Dropout_layers/seed"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Dropout_layers/Dropout"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Dropout_layers/Dropout2d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Dropout_layers/Dropout3d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Dropout_layers/AlphaDropout"/>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Sparse_layers" basePackage="org.eclipse.papyrus.aiml.profile.AIML"
+ disposableProviderFactory="true" ecorePackage="AIML.ecore#//Sparse_layers">
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Sparse_layers/Sparse_layers">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Sparse_layers/Sparse_layers/num_embeddings"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Sparse_layers/Sparse_layers/embedding_dim"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Sparse_layers/Sparse_layers/max_norm"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Sparse_layers/Sparse_layers/norm_type"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Sparse_layers/Sparse_layers/sparse"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Sparse_layers/Sparse_layers/scale_grad_by_freq"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Sparse_layers/Embedding">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Sparse_layers/Embedding/padding_idx"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Sparse_layers/EmbeddingBag">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Sparse_layers/EmbeddingBag/mode"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Sparse_layers/EmbeddingBag/include_last_offset"/>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Distance_functions"
+ basePackage="org.eclipse.papyrus.aiml.profile.AIML" disposableProviderFactory="true"
+ ecorePackage="AIML.ecore#//Distance_functions">
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Distance_functions/Distance_functions">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Distance_functions/Distance_functions/eps"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Distance_functions/CosineSimilarity">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Distance_functions/CosineSimilarity/dim"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Distance_functions/PairwiseDistance">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Distance_functions/PairwiseDistance/p"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Distance_functions/PairwiseDistance/keepdim"/>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Loss_functions" basePackage="org.eclipse.papyrus.aiml.profile.AIML"
+ disposableProviderFactory="true" ecorePackage="AIML.ecore#//Loss_functions">
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Loss_functions/Loss_functions">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Loss_functions/Loss_functions/reduction"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Loss_functions/Loss_functions_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Loss_functions/Loss_functions_1/size_average"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Loss_functions/Loss_functions_1/reduce"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/L1Loss"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/MSELoss"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/CTCLoss">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Loss_functions/CTCLoss/blank"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Loss_functions/CTCLoss/zero_infinity"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/KLDivLoss"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/MultiLabelMarginLoss"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/Loss_functions_1_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Loss_functions/Loss_functions_1_1/margin"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/Loss_functions_1_2">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Loss_functions/Loss_functions_1_2/weight"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/CosineEmbeddingLoss"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/MarginRankingLoss"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/HingeEmbeddingLoss"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/BCELoss"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Loss_functions/Loss_functions_1_1_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Loss_functions/Loss_functions_1_1_1/p"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/MultiMarginLoss">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Loss_functions/MultiMarginLoss/weight"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/TripletMarginLoss">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Loss_functions/TripletMarginLoss/swap"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Loss_functions/Loss_functions_1_2_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Loss_functions/Loss_functions_1_2_1/ignore_index"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/CrossEntropyLoss"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/NLLLoss"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/PoissonNLLLoss">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Loss_functions/PoissonNLLLoss/log_input"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Loss_functions/PoissonNLLLoss/full"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Loss_functions/PoissonNLLLoss/eps"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Loss_functions/BCEWithLogitsLoss">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//Loss_functions/BCEWithLogitsLoss/pos_weight"/>
+ </genClasses>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Vision_layers" basePackage="org.eclipse.papyrus.aiml.profile.AIML"
+ disposableProviderFactory="true" ecorePackage="AIML.ecore#//Vision_layers">
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Vision_layers/Vision_layers"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Vision_layers/Vision_layers_1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Vision_layers/Vision_layers_1/size"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Vision_layers/Vision_layers_1/scale_factor"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Vision_layers/PixelShuffle">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Vision_layers/PixelShuffle/upscale_factor"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Vision_layers/Upsample">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Vision_layers/Upsample/mode"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Vision_layers/Upsample/align_corners"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Vision_layers/UpsamplingNearest2d"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Vision_layers/UpsamplingBilinear2d"/>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="DataParallel_layers"
+ basePackage="org.eclipse.papyrus.aiml.profile.AIML" disposableProviderFactory="true"
+ ecorePackage="AIML.ecore#//DataParallel_layers">
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//DataParallel_layers/DataParallel_layers">
+ <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+ propertySortChoices="true" ecoreFeature="ecore:EReference AIML.ecore#//DataParallel_layers/DataParallel_layers/module"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//DataParallel_layers/DataParallel_layers/device_ids"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//DataParallel_layers/DataParallel_layers/output_device"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//DataParallel_layers/DistributedDataParallel">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//DataParallel_layers/DistributedDataParallel/broadcast_buffers"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//DataParallel_layers/DistributedDataParallel/process_group"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//DataParallel_layers/DistributedDataParallel/bucket_cap_mb"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//DataParallel_layers/DistributedDataParallel/find_unsused_parameters"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//DataParallel_layers/DistributedDataParallel/check_reduction"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//DataParallel_layers/DataParallel"/>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Layer_weight_regularizers"
+ basePackage="org.eclipse.papyrus.aiml.profile.AIML" disposableProviderFactory="true"
+ ecorePackage="AIML.ecore#//Layer_weight_regularizers">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_regularizers/l1"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Layer_weight_regularizers/ReguWithl1">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_regularizers/ReguWithl1/l1"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_regularizers/l2"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Layer_weight_regularizers/ReguWithl2">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_regularizers/ReguWithl2/l2"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_regularizers/l1_l2"/>
+ </nestedGenPackages>
+ <nestedGenPackages xsi:type="genmodel:GenPackage" prefix="Layer_weight_initializers"
+ basePackage="org.eclipse.papyrus.aiml.profile.AIML" disposableProviderFactory="true"
+ ecorePackage="AIML.ecore#//Layer_weight_initializers">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_initializers/random_normal"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Layer_weight_initializers/initializer_with_mean_stddev">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_initializers/initializer_with_mean_stddev/mean"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_initializers/initializer_with_mean_stddev/stddev"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Layer_weight_initializers/initializer_with_seed">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_initializers/initializer_with_seed/seed"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_initializers/random_uniform">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_initializers/random_uniform/minval"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_initializers/random_uniform/maxval"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_initializers/truncated_normal"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_initializers/zeros"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_initializers/ones"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_initializers/glorot_normal"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_initializers/glorot_uniform"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_initializers/identity"/>
+ <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="AIML.ecore#//Layer_weight_initializers/initializer_with_gain">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_initializers/initializer_with_gain/gain"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_initializers/orthogonal"/>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_initializers/constant">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_initializers/constant/value"/>
+ </genClasses>
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="AIML.ecore#//Layer_weight_initializers/variance_scaling">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_initializers/variance_scaling/scale"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_initializers/variance_scaling/mode"/>
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute AIML.ecore#//Layer_weight_initializers/variance_scaling/distribution"/>
+ </genClasses>
+ </nestedGenPackages>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.profile.di b/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.profile.di
new file mode 100644
index 0000000..247ed5e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.profile.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.uml.architecture.Profile"/>
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.profile.notation b/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.profile.notation
new file mode 100644
index 0000000..a3e2ba0
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.profile.notation
@@ -0,0 +1,13155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.3/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+ <notation:Diagram xmi:id="_tRe00H2KEeqSHNFOHg2_Jw" type="PapyrusUMLProfileDiagram" name="AIML" measurementUnit="Pixel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Qv6tsYvAEeqlnrZTj0aPoA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Qv6tsovAEeqlnrZTj0aPoA" key="canonical" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_1ARFcH2KEeqSHNFOHg2_Jw" type="Class_MetaclassShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1AnqwH2KEeqSHNFOHg2_Jw" type="Class_MetaclassNameLabel"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1ARFcX2KEeqSHNFOHg2_Jw" x="12300" y="-280" width="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Nu8ksJOPEeqnY_bZg2Ebjg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_N9c6wJOPEeqnY_bZg2Ebjg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_N9c6wZOPEeqnY_bZg2Ebjg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Nu9y0JOPEeqnY_bZg2Ebjg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Nu9y0ZOPEeqnY_bZg2Ebjg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Nu9y0pOPEeqnY_bZg2Ebjg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nu9y05OPEeqnY_bZg2Ebjg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_Nr2NYJOPEeqnY_bZg2Ebjg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nu8ksZOPEeqnY_bZg2Ebjg" x="4540" y="-4"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpSA0JT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV18JT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV18ZT3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpT2AJT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpT2AZT3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpT2ApT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpT2A5T3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_u1dx8JT1Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpSn4JT3Eeq5BK6mmo2rWg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpUdEJT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV18pT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV185T3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpUdEpT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpUdE5T3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpUdFJT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpUdFZT3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_38DjAJT1Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpUdEZT3Eeq5BK6mmo2rWg" x="260"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpVEIJT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV19JT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV19ZT3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpVEIpT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpVEI5T3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpVEJJT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpVEJZT3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Package" href="AIML.profile.uml#_-8tiUJT1Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpVEIZT3Eeq5BK6mmo2rWg" x="520"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpVEJpT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV19pT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV195T3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpVEKJT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpVEKZT3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpVEKpT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpVEK5T3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_Deu8AJT2Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpVEJ5T3Eeq5BK6mmo2rWg" x="780"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpVrMJT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV1-JT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV1-ZT3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpVrMpT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpVrM5T3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpVrNJT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpVrNZT3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_2_xEcJT2Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpVrMZT3Eeq5BK6mmo2rWg" x="1040"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpVrNpT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV1-pT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV1-5T3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpVrOJT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpVrOZT3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpVrOpT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpVrO5T3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_H7fbMJT2Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpVrN5T3Eeq5BK6mmo2rWg" x="1300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpWSQJT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV1_JT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV1_ZT3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpWSQpT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpWSQ5T3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpWSRJT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpWSRZT3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_K1H6wJT2Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpWSQZT3Eeq5BK6mmo2rWg" x="1640"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpWSRpT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV1_pT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV1_5T3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpWSSJT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpWSSZT3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpWSSpT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpWSS5T3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_N5zMsJT2Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpWSR5T3Eeq5BK6mmo2rWg" x="1900"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpW5UJT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV2AJT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV2AZT3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpW5UpT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpW5U5T3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpW5VJT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpW5VZT3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_RAjiQJT2Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpW5UZT3Eeq5BK6mmo2rWg" x="2160"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpW5VpT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV2ApT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV2A5T3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpXgYJT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpXgYZT3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpXgYpT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpXgY5T3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_T8DDAJT2Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpW5V5T3Eeq5BK6mmo2rWg" x="2420"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpXgZJT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV2BJT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV2BZT3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpXgZpT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpXgZ5T3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpXgaJT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpXgaZT3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_WwqfsJT2Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpXgZZT3Eeq5BK6mmo2rWg" x="2680"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpYHcJT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV2BpT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV2B5T3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpYHcpT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpYHc5T3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpYHdJT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpYHdZT3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_ZUMzcJT2Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpYHcZT3Eeq5BK6mmo2rWg" x="2940"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpYugJT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV2CJT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV2CZT3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpYugpT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpYug5T3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpYuhJT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpYuhZT3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_cKwJ0JT2Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpYugZT3Eeq5BK6mmo2rWg" x="3200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpYuhpT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV2CpT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV2C5T3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpYuiJT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpYuiZT3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpYuipT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpYui5T3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_fjUoIJT2Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpYuh5T3Eeq5BK6mmo2rWg" x="3460"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpYujJT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV2DJT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV2DZT3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpYujpT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpYuj5T3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpYukJT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpYukZT3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_nZcP0JT2Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpYujZT3Eeq5BK6mmo2rWg" x="3720"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpZVkJT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV2DpT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV2D5T3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpZVkpT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpZVk5T3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpZVlJT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpZVlZT3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_q6FsEJT2Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpZVkZT3Eeq5BK6mmo2rWg" x="3980"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BpZVlpT3Eeq5BK6mmo2rWg" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CAV2EJT3Eeq5BK6mmo2rWg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CAV2EZT3Eeq5BK6mmo2rWg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BpZVmJT3Eeq5BK6mmo2rWg" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BpZVmZT3Eeq5BK6mmo2rWg" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BpZVmpT3Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpZVm5T3Eeq5BK6mmo2rWg"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_wBUroJT2Eeq5BK6mmo2rWg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BpZVl5T3Eeq5BK6mmo2rWg" x="4240"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f28t0JauEeq1-Ze45jZMTg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f28t0ZauEeq1-Ze45jZMTg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_f28t05auEeq1-Ze45jZMTg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f28t0pauEeq1-Ze45jZMTg" x="12640" y="-280"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LLRQIK7wEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LUVskK7wEeqhVOlV64dXmA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LUVska7wEeqhVOlV64dXmA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LLTFUK7wEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LLTFUa7wEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LLTFUq7wEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LLTFU67wEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LLTFVK7wEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLTFVa7wEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LLTsYK7wEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LLTsYa7wEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LLTsYq7wEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LLTsY67wEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLTsZK7wEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_hxbaEJm6Eeq0jfmjFzaebA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLRQIa7wEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LLUTcK7wEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LUVskq7wEeqhVOlV64dXmA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LUVsk67wEeqhVOlV64dXmA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LLUTcq7wEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LLU6gK7wEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LLU6ga7wEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LLU6gq7wEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LLU6g67wEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLU6hK7wEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LLU6ha7wEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LLU6hq7wEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LLU6h67wEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LLU6iK7wEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLU6ia7wEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_w1CjMJm6Eeq0jfmjFzaebA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLUTca7wEeqhVOlV64dXmA" x="160"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LLU6iq7wEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LUWToK7wEeqhVOlV64dXmA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LUWToa7wEeqhVOlV64dXmA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LLVhkK7wEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LLVhka7wEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LLVhkq7wEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LLVhk67wEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LLVhlK7wEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLVhla7wEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LLVhlq7wEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LLVhl67wEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LLVhmK7wEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LLVhma7wEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLVhmq7wEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_DSn40Jm7Eeq0jfmjFzaebA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLU6i67wEeqhVOlV64dXmA" x="320"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LLVhm67wEeqhVOlV64dXmA" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LUWToq7wEeqhVOlV64dXmA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LUWTo67wEeqhVOlV64dXmA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LLWIoK7wEeqhVOlV64dXmA" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LLWIoa7wEeqhVOlV64dXmA" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LLWIoq7wEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLWIo67wEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_DtlO0KTlEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLVhnK7wEeqhVOlV64dXmA" x="540"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LLWIpK7wEeqhVOlV64dXmA" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LUWTpK7wEeqhVOlV64dXmA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LUWTpa7wEeqhVOlV64dXmA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LLWvsK7wEeqhVOlV64dXmA" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LLWvsa7wEeqhVOlV64dXmA" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LLWvsq7wEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLWvs67wEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_X5a5MKTpEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLWIpa7wEeqhVOlV64dXmA" x="800"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LLWvtK7wEeqhVOlV64dXmA" type="Profile_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LUWTpq7wEeqhVOlV64dXmA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_LUWTp67wEeqhVOlV64dXmA" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_LLXWwK7wEeqhVOlV64dXmA" type="Profile_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LLXWwa7wEeqhVOlV64dXmA" type="Profile_PackagedElementCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LLXWwq7wEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLXWw67wEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_ZgMWkKWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LLWvta7wEeqhVOlV64dXmA" x="1060"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MfpSsPmaEeqCRcDdPeQY2A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MfpSsfmaEeqCRcDdPeQY2A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Mfp5wPmaEeqCRcDdPeQY2A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MfpSsvmaEeqCRcDdPeQY2A" x="12500" y="-280"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_tRe00X2KEeqSHNFOHg2_Jw" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_tRe00n2KEeqSHNFOHg2_Jw"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_tRe0032KEeqSHNFOHg2_Jw" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:CanonicalStyle" xmi:id="_Qv6tsIvAEeqlnrZTj0aPoA"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_Mfqg0PmaEeqCRcDdPeQY2A" type="StereotypeCommentLink" source="_1ARFcH2KEeqSHNFOHg2_Jw" target="_MfpSsPmaEeqCRcDdPeQY2A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Mfqg0fmaEeqCRcDdPeQY2A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Mfru8PmaEeqCRcDdPeQY2A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Mfqg0vmaEeqCRcDdPeQY2A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MfrH4PmaEeqCRcDdPeQY2A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MfrH4fmaEeqCRcDdPeQY2A"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_m1nccI7UEeq0upQJ9r5s4Q" type="PapyrusUMLProfileDiagram" name="Convolution_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_J4Kf-I8nEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J4Kf-Y8nEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4Kf-o8nEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J4Kf-48nEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J4Kf_I8nEeq5HrfdV5ATIg" key="collapsed" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_J4Kf_Y8nEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_xLDlAH5nEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J4Kf_o8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J4KgAY8nEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_PgB_YH5oEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J4KgAo8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J4KgA48nEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_RrmfEH5oEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J4KgBI8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J4KgBY8nEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_UPxE8H5oEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J4KgBo8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NJbPgKG2EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_NJHtgKG2EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NJbPgaG2EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OvP90KG2EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Ou9p8KG2EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OvP90aG2EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SXeowKG2EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_SXLt0KG2EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SXeowaG2EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TH71UKG2EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_THvoEKG2EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TH71UaG2EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UilOYKG2EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_UiUvsKG2EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UilOYaG2EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_koIVoKG2EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_kn6TMKG2EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_koIVoaG2EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_bGnFMKStEeqmTOsCAzVBxg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_bGMOcKStEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bGnFMaStEeqmTOsCAzVBxg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4KgB48nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4KgCI8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4KgCY8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4KgCo8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4KgC48nEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4KgDI8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4KgDY8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4KgDo8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4KgD48nEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_5DtswH2KEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4KgE48nEeq5HrfdV5ATIg" x="-1426" y="318"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J4LuF48nEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J4LuGI8nEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4LuGY8nEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4LuGo8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4LuG48nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4LuHI8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4LuHY8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4LuHo8nEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4LuH48nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4LuII8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4LuIY8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4LuIo8nEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_AfPLEIVKEeqvud4Ae2T3Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4LuJo8nEeq5HrfdV5ATIg" x="-1506" y="1258"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J4MVII8nEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J4MVIY8nEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4MVIo8nEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4MVI48nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4MVJI8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4MVJY8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4MVJo8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4MVJ48nEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4MVKI8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4MVKY8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4MVKo8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4MVK48nEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_anKPYH5pEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4MVL48nEeq5HrfdV5ATIg" x="-820" y="320" width="217"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J4OxYI8nEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J4OxYY8nEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4OxYo8nEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_J4OxY48nEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_MKi_YH5qEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J4OxZI8nEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4OxZY8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4OxZo8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4OxZ48nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4OxaI8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4OxaY8nEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4Oxao8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4Oxa48nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4OxbI8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4OxbY8nEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ISZCEH5qEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4OxcY8nEeq5HrfdV5ATIg" x="-1100" y="320" width="217"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J4Oxc48nEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J4OxdI8nEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4OxdY8nEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4Oxdo8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4Oxd48nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4OxeI8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4OxeY8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4Oxeo8nEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4Oxe48nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4OxfI8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4OxfY8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4Oxfo8nEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_2Ej78IVJEeqvud4Ae2T3Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4Oxgo8nEeq5HrfdV5ATIg" x="-2100" y="1140"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J4PYcI8nEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J4PYcY8nEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4PYco8nEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4PYc48nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4PYdI8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4PYdY8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4PYdo8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4PYd48nEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4PYeI8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4PYeY8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4PYeo8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4PYe48nEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_6j6cIIVJEeqvud4Ae2T3Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4PYf48nEeq5HrfdV5ATIg" x="-1966" y="1138"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J4PYgI8nEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J4PYgY8nEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4PYgo8nEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4PYg48nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4PYhI8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4PYhY8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4PYho8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4PYh48nEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4PYiI8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4PYiY8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4PYio8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4PYi48nEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_8w4C8IVJEeqvud4Ae2T3Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4PYj48nEeq5HrfdV5ATIg" x="-1500" y="940"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J4P_iI8nEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J4P_iY8nEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4P_io8nEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4P_i48nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4P_jI8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4P_jY8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4P_jo8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4P_j48nEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4P_kI8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4P_kY8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4P_ko8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4P_k48nEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#__Er4oIVJEeqvud4Ae2T3Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4P_l48nEeq5HrfdV5ATIg" x="-1646" y="1258"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J4QmkI8nEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J4QmkY8nEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4Qmko8nEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_J4Qmk48nEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ZsHuAH5qEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J4QmlI8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J4QmlY8nEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_a-bqcH5qEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J4Qmlo8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J4Qml48nEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_bcYxwH5qEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J4QmmI8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_J4QmmY8nEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_cR75sH5qEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J4Qmmo8nEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4QmnY8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4Qmno8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4Qmn48nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4QmoI8nEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_J4QmoY8nEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_J4Qmoo8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_J4Qmo48nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_J4QmpI8nEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4QmpY8nEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_YZ54MH5qEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_J4QmqY8nEeq5HrfdV5ATIg" x="-1080" y="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_RBuMMKG1EeqsNvCDUfZJVA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RBuzQKG1EeqsNvCDUfZJVA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RBuzQaG1EeqsNvCDUfZJVA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_SpHn0KG1EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_SowbcKG1EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SpHn0aG1EeqsNvCDUfZJVA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RBuzQqG1EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RBuzQ6G1EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RBuzRKG1EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RBuzRaG1EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_RBuzRqG1EeqsNvCDUfZJVA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_RBuzR6G1EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_RBuzSKG1EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_RBuzSaG1EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RBuzSqG1EeqsNvCDUfZJVA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_RBqh0KG1EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RBuMMaG1EeqsNvCDUfZJVA" x="-1620" y="1120"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5JYooKG1EeqsNvCDUfZJVA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5JZPsKG1EeqsNvCDUfZJVA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5JZPsaG1EeqsNvCDUfZJVA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_7rjDYKG1EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_7rUZ4KG1EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7rjDYaG1EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_85y_MKG1EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_85lj0KG1EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_85y_MaG1EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_alP7cKG2EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ak_cwKG2EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_alP7caG2EeqsNvCDUfZJVA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5JZPsqG1EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5JZPs6G1EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5JZPtKG1EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5JZPtaG1EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_5JZPtqG1EeqsNvCDUfZJVA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_5JZPt6G1EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_5JZPuKG1EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_5JZPuaG1EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5JZPuqG1EeqsNvCDUfZJVA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_5JUXMKG1EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5JYooaG1EeqsNvCDUfZJVA" x="-1840" y="920"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_g_XCsKG3EeqsNvCDUfZJVA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_g_XpwKG3EeqsNvCDUfZJVA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_g_XpwaG3EeqsNvCDUfZJVA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_g_XpwqG3EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_g_Xpw6G3EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_g_XpxKG3EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_XpxaG3EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_g_XpxqG3EeqsNvCDUfZJVA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_g_Xpx6G3EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_g_XpyKG3EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_g_XpyaG3EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_XpyqG3EeqsNvCDUfZJVA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_g_SxQKG3EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_g_XCsaG3EeqsNvCDUfZJVA" x="-2240" y="1140"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_d-nZEKG4EeqsNvCDUfZJVA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_d-nZEqG4EeqsNvCDUfZJVA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_d-nZE6G4EeqsNvCDUfZJVA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_euFuMKG4EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_etxlIKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_euFuMaG4EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gALoMKG4EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_f_57YKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gALoMaG4EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hwg9YKG4EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_hwRFwKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hwg9YaG4EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_i2yB4KG4EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_i2jYYKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_i2yB4aG4EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lGPjEKG4EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_lF9PMKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lGPjEaG4EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mtXR4KG4EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_mtJ2gKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mtXR4aG4EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oTOccKG4EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_oTAaAKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oTOccaG4EeqsNvCDUfZJVA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_d-nZFKG4EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_d-nZFaG4EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_d-nZFqG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d-nZF6G4EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_d-nZGKG4EeqsNvCDUfZJVA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_d-nZGaG4EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_d-nZGqG4EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_d-nZG6G4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d-nZHKG4EeqsNvCDUfZJVA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_d-jusKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d-nZEaG4EeqsNvCDUfZJVA" x="-1260" y="900"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_08WgIKG4EeqsNvCDUfZJVA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_08WgIqG4EeqsNvCDUfZJVA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_08WgI6G4EeqsNvCDUfZJVA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_08WgJKG4EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_08WgJaG4EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_08WgJqG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_08WgJ6G4EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_08WgKKG4EeqsNvCDUfZJVA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_08WgKaG4EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_08WgKqG4EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_08WgK6G4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_08WgLKG4EeqsNvCDUfZJVA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_08Tc0KG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_08WgIaG4EeqsNvCDUfZJVA" x="-1100" y="1180"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_34N0UKG4EeqsNvCDUfZJVA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_34N0UqG4EeqsNvCDUfZJVA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_34N0U6G4EeqsNvCDUfZJVA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_34N0VKG4EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_34N0VaG4EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_34N0VqG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_34N0V6G4EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_34N0WKG4EeqsNvCDUfZJVA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_34N0WaG4EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_34N0WqG4EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_34N0W6G4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_34N0XKG4EeqsNvCDUfZJVA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_34MmMKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_34N0UaG4EeqsNvCDUfZJVA" x="-1260" y="1180"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IqAhEKG6EeqsNvCDUfZJVA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IqAhEqG6EeqsNvCDUfZJVA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IqAhE6G6EeqsNvCDUfZJVA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_SS5G4KG6EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_SSgFUKG6EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SS5G4aG6EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZHqmUKG6EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ZHdK8KG6EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZHqmUaG6EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ch__MKG6EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_chtrUKG6EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ch__MaG6EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ir0dIKG6EeqsNvCDUfZJVA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_iro28KG6EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ir0dIaG6EeqsNvCDUfZJVA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IqAhFKG6EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IqAhFaG6EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IqAhFqG6EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IqAhF6G6EeqsNvCDUfZJVA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IqAhGKG6EeqsNvCDUfZJVA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IqAhGaG6EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IqAhGqG6EeqsNvCDUfZJVA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IqAhG6G6EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IqAhHKG6EeqsNvCDUfZJVA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Ip7BgKG6EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IqAhEaG6EeqsNvCDUfZJVA" x="-1080" y="680"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_37SKcKStEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_37SKcqStEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_37SKc6StEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_Nbrw0KSuEeqmTOsCAzVBxg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_NbNPsKSuEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Nbrw0aSuEeqmTOsCAzVBxg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_37SKdKStEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_37SxgKStEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_37SxgaStEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_37SxgqStEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_37Sxg6StEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_37SxhKStEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_37SxhaStEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_37SxhqStEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_37Sxh6StEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_37PHIKStEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_37SKcaStEeqmTOsCAzVBxg" x="-1440" y="700"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_m1nccY7UEeq0upQJ9r5s4Q" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_m1ncco7UEeq0upQJ9r5s4Q"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_m1ncc47UEeq0upQJ9r5s4Q" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_4YbfkK8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_J4Kf8I8nEeq5HrfdV5ATIg" type="Generalization_Edge" source="_J4Kf-I8nEeq5HrfdV5ATIg" target="_J4QmkI8nEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J4Kf8Y8nEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_J4Kf8o8nEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J4Kf848nEeq5HrfdV5ATIg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_J4Kf9I8nEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_JBpp4H5sEeqSHNFOHg2_Jw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J4Kf9Y8nEeq5HrfdV5ATIg" points="[-576, -350, -643984, -643984]$[-516, -399, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J4Kf9o8nEeq5HrfdV5ATIg" id="(0.8248587570621468,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J4Kf948nEeq5HrfdV5ATIg" id="(0.3081761006289308,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_J4P_gI8nEeq5HrfdV5ATIg" type="Generalization_Edge" source="_J4MVII8nEeq5HrfdV5ATIg" target="_J4QmkI8nEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J4P_gY8nEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_J4P_go8nEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J4P_g48nEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_J4P_hI8nEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_Je4_gH5sEeqSHNFOHg2_Jw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J4P_hY8nEeq5HrfdV5ATIg" points="[-820, 320, -643984, -643984]$[-940, 171, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J4P_ho8nEeq5HrfdV5ATIg" id="(0.0,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J4P_h48nEeq5HrfdV5ATIg" id="(0.8860759493670886,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_J4P_mI8nEeq5HrfdV5ATIg" type="Generalization_Edge" source="_J4OxYI8nEeq5HrfdV5ATIg" target="_J4QmkI8nEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_J4P_mY8nEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_J4P_mo8nEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_J4P_m48nEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_J4P_nI8nEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_J9Ae4H5sEeqSHNFOHg2_Jw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_J4P_nY8nEeq5HrfdV5ATIg" points="[-370, -270, -643984, -643984]$[-370, -379, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J4P_no8nEeq5HrfdV5ATIg" id="(0.2764976958525346,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_J4P_n48nEeq5HrfdV5ATIg" id="(0.6329113924050633,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QS5scKG3EeqsNvCDUfZJVA" type="Generalization_Edge" source="_J4P_iI8nEeq5HrfdV5ATIg" target="_RBuMMKG1EeqsNvCDUfZJVA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QS5sc6G3EeqsNvCDUfZJVA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w1-goKG4EeqsNvCDUfZJVA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QS5sdKG3EeqsNvCDUfZJVA" x="-1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QS5scaG3EeqsNvCDUfZJVA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_QScZcKG3EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QS5scqG3EeqsNvCDUfZJVA" points="[-1600, 1258, -643984, -643984]$[-1560, 1223, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QThXgKG3EeqsNvCDUfZJVA" id="(0.4339622641509434,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QThXgaG3EeqsNvCDUfZJVA" id="(0.2702702702702703,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QuNvcKG3EeqsNvCDUfZJVA" type="Generalization_Edge" source="_J4LuF48nEeq5HrfdV5ATIg" target="_RBuMMKG1EeqsNvCDUfZJVA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QuNvc6G3EeqsNvCDUfZJVA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w3SIMKG4EeqsNvCDUfZJVA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QuNvdKG3EeqsNvCDUfZJVA" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QuNvcaG3EeqsNvCDUfZJVA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_Qt4YQKG3EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QuNvcqG3EeqsNvCDUfZJVA" points="[-1440, 1258, -643984, -643984]$[-1460, 1223, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QuxJEKG3EeqsNvCDUfZJVA" id="(0.6226415094339622,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QuxwIKG3EeqsNvCDUfZJVA" id="(0.7207207207207207,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_RMTZoKG3EeqsNvCDUfZJVA" type="Generalization_Edge" source="_RBuMMKG1EeqsNvCDUfZJVA" target="_5JYooKG1EeqsNvCDUfZJVA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RMTZo6G3EeqsNvCDUfZJVA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w2hTMKG4EeqsNvCDUfZJVA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RMTZpKG3EeqsNvCDUfZJVA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RMTZoaG3EeqsNvCDUfZJVA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_RL6_IKG3EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RMTZoqG3EeqsNvCDUfZJVA" points="[-1560, 1120, -643984, -643984]$[-1680, 1055, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RMx6wKG3EeqsNvCDUfZJVA" id="(0.2702702702702703,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RMx6waG3EeqsNvCDUfZJVA" id="(0.6986899563318777,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_pumqwKG3EeqsNvCDUfZJVA" type="Generalization_Edge" source="_J4PYcI8nEeq5HrfdV5ATIg" target="_5JYooKG1EeqsNvCDUfZJVA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_pumqw6G3EeqsNvCDUfZJVA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w2v8sKG4EeqsNvCDUfZJVA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pumqxKG3EeqsNvCDUfZJVA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_pumqwaG3EeqsNvCDUfZJVA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_pt11wKG3EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pumqwqG3EeqsNvCDUfZJVA" points="[-1900, 1138, -643984, -643984]$[-1760, 1055, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pvL5kKG3EeqsNvCDUfZJVA" id="(0.66,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pvL5kaG3EeqsNvCDUfZJVA" id="(0.34934497816593885,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_qNZfkKG3EeqsNvCDUfZJVA" type="Generalization_Edge" source="_J4Oxc48nEeq5HrfdV5ATIg" target="_5JYooKG1EeqsNvCDUfZJVA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qNbUwKG3EeqsNvCDUfZJVA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w2L8AKG4EeqsNvCDUfZJVA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qNbUwaG3EeqsNvCDUfZJVA" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_qNZfkaG3EeqsNvCDUfZJVA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_qNQVoKG3EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qNZfkqG3EeqsNvCDUfZJVA" points="[-2040, 1140, -643984, -643984]$[-1780, 1055, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qN2LgKG3EeqsNvCDUfZJVA" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qN2LgaG3EeqsNvCDUfZJVA" id="(0.26200873362445415,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_q2CM4KG3EeqsNvCDUfZJVA" type="Generalization_Edge" source="_g_XCsKG3EeqsNvCDUfZJVA" target="_5JYooKG1EeqsNvCDUfZJVA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_q2CM46G3EeqsNvCDUfZJVA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w25tsKG4EeqsNvCDUfZJVA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_q2CM5KG3EeqsNvCDUfZJVA" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_q2CM4aG3EeqsNvCDUfZJVA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_q1mIAKG3EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_q2CM4qG3EeqsNvCDUfZJVA" points="[-2180, 1140, -643984, -643984]$[-1820, 1055, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q2s7QKG3EeqsNvCDUfZJVA" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q2s7QaG3EeqsNvCDUfZJVA" id="(0.08733624454148471,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Kvk74KG5EeqsNvCDUfZJVA" type="Generalization_Edge" source="_08WgIKG4EeqsNvCDUfZJVA" target="_d-nZEKG4EeqsNvCDUfZJVA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Kvk746G5EeqsNvCDUfZJVA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_KDH5kKSuEeqmTOsCAzVBxg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Kvk75KG5EeqsNvCDUfZJVA" x="-2" y="57"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Kvk74aG5EeqsNvCDUfZJVA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_KvNvgKG5EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Kvk74qG5EeqsNvCDUfZJVA" points="[-1020, 1180, -643984, -643984]$[-1080, 1099, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KwHHYKG5EeqsNvCDUfZJVA" id="(0.7547169811320755,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KwHHYaG5EeqsNvCDUfZJVA" id="(0.7171314741035857,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_L9lnIKG5EeqsNvCDUfZJVA" type="Generalization_Edge" source="_34N0UKG4EeqsNvCDUfZJVA" target="_d-nZEKG4EeqsNvCDUfZJVA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_L9oqcKG5EeqsNvCDUfZJVA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_KCtp4KSuEeqmTOsCAzVBxg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_L9oqcaG5EeqsNvCDUfZJVA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_L9lnIaG5EeqsNvCDUfZJVA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_L9aA8KG5EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_L9lnIqG5EeqsNvCDUfZJVA" points="[-1200, 1180, -643984, -643984]$[-1180, 1099, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L-DhMKG5EeqsNvCDUfZJVA" id="(0.5660377358490566,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L-DhMaG5EeqsNvCDUfZJVA" id="(0.3187250996015936,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Qv4FcKSuEeqmTOsCAzVBxg" type="Generalization_Edge" source="_5JYooKG1EeqsNvCDUfZJVA" target="_37SKcKStEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Qv4sgKSuEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Qv4sgaSuEeqmTOsCAzVBxg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Qv4FcaSuEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_QvZkUKSuEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Qv4FcqSuEeqmTOsCAzVBxg" points="[-1660, 920, -643984, -643984]$[-1420, 803, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QwfJcKSuEeqmTOsCAzVBxg" id="(0.7860262008733624,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QwfJcaSuEeqmTOsCAzVBxg" id="(0.0966183574879227,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_RPARcKSuEeqmTOsCAzVBxg" type="Generalization_Edge" source="_J4PYgI8nEeq5HrfdV5ATIg" target="_37SKcKStEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RPARc6SuEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RPARdKSuEeqmTOsCAzVBxg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RPARcaSuEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_ROpsIKSuEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RPARcqSuEeqmTOsCAzVBxg" points="[-1440, 940, -643984, -643984]$[-1380, 803, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RPfZoKSuEeqmTOsCAzVBxg" id="(0.5660377358490566,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RPfZoaSuEeqmTOsCAzVBxg" id="(0.2898550724637681,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_RwKdwKSuEeqmTOsCAzVBxg" type="Generalization_Edge" source="_d-nZEKG4EeqsNvCDUfZJVA" target="_37SKcKStEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_RwKdw6SuEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RwKdxKSuEeqmTOsCAzVBxg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_RwKdwaSuEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_Rvo5UKSuEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RwKdwqSuEeqmTOsCAzVBxg" points="[-1180, 900, -643984, -643984]$[-1280, 803, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RwvFgKSuEeqmTOsCAzVBxg" id="(0.3187250996015936,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RwvFgaSuEeqmTOsCAzVBxg" id="(0.7729468599033816,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_SberoKSuEeqmTOsCAzVBxg" type="Generalization_Edge" source="_37SKcKStEeqmTOsCAzVBxg" target="_J4Kf-I8nEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Sbero6SuEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_SberpKSuEeqmTOsCAzVBxg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_SberoaSuEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_SbB_sKSuEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SberoqSuEeqmTOsCAzVBxg" points="[-1340, 700, -643984, -643984]$[-1340, 597, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ScYqkKSuEeqmTOsCAzVBxg" id="(0.4830917874396135,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ScYqkaSuEeqmTOsCAzVBxg" id="(0.3659574468085106,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gwdNIKSuEeqmTOsCAzVBxg" type="Generalization_Edge" source="_IqAhEKG6EeqsNvCDUfZJVA" target="_J4Kf-I8nEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gwdNI6SuEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gwdNJKSuEeqmTOsCAzVBxg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gwdNIaSuEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_gvxQoKSuEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gwdNIqSuEeqmTOsCAzVBxg" points="[-1000, 680, -643984, -643984]$[-1220, 581, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gxPQQKSuEeqmTOsCAzVBxg" id="(0.3187250996015936,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gxPQQaSuEeqmTOsCAzVBxg" id="(0.8765957446808511,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_kJJLUI8lEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Module" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_m2CPYI8lEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cqEVMI8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cqEVMY8mEeq5HrfdV5ATIg" key="canonical" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_m2DdgI8lEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_m2EEkI8lEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UzO1AKWREeq2dLYfuMvqgg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UzO1AaWREeq2dLYfuMvqgg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_sDX28I8lEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_7EMR4IhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sDX28Y8lEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sDZsII8lEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_7vDMwIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sDZsIY8lEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sDaTMI8lEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_9DLHEIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sDaTMY8lEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sDa6QI8lEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ivxlgIvAEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sDa6QY8lEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__PMOkLYUEeq1Koq3J5meEA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#__N7qULYUEeq1Koq3J5meEA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__PM1oLYUEeq1Koq3J5meEA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtTyYLYVEeq1Koq3J5meEA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_AtDTsLYVEeq1Koq3J5meEA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtTyYbYVEeq1Koq3J5meEA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_m2EEkY8lEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_m2EEko8lEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_m2EEk48lEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_m2EElI8lEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_m2EElY8lEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_m2EElo8lEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_m2EEl48lEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_m2EEmI8lEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_m2EEmY8lEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:CanonicalStyle" xmi:id="_cqDuII8mEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_2E9coH2KEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_m2CPYY8lEeq5HrfdV5ATIg" x="376" y="313"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nKeOUI8lEeq5HrfdV5ATIg" type="Class_MetaclassShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nKe1YI8lEeq5HrfdV5ATIg" type="Class_MetaclassNameLabel"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nKeOUY8lEeq5HrfdV5ATIg" x="394" y="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3vW_8LYUEeq1Koq3J5meEA" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3vW_8bYUEeq1Koq3J5meEA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_3vXnALYUEeq1Koq3J5meEA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3vW_8rYUEeq1Koq3J5meEA" x="594" y="101"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_kJJLUY8lEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_kJJLUo8lEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_kJJLU48lEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_g_ZjoK8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_nLI8sI8lEeq5HrfdV5ATIg" type="Extension_Edge" source="_m2CPYI8lEeq5HrfdV5ATIg" target="_nKeOUI8lEeq5HrfdV5ATIg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_nLI8sY8lEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Extension" href="AIML.profile.uml#_n3BRAH5rEeqSHNFOHg2_Jw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nLI8so8lEeq5HrfdV5ATIg" points="[376, 320, -643984, -643984]$[0, 0, -643984, -643984]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3vXnAbYUEeq1Koq3J5meEA" type="StereotypeCommentLink" source="_nKeOUI8lEeq5HrfdV5ATIg" target="_3vW_8LYUEeq1Koq3J5meEA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_3vYOELYUEeq1Koq3J5meEA"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_3vY1ILYUEeq1Koq3J5meEA" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3vYOEbYUEeq1Koq3J5meEA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3vYOErYUEeq1Koq3J5meEA"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3vYOE7YUEeq1Koq3J5meEA"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_xCeOMI8lEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Tensor" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_1c7AQI8lEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jEYGMY8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jEYGMo8mEeq5HrfdV5ATIg" key="canonical" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1c7nUY8lEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1c8OYI8lEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jFWWkI8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jFWWkY8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_jEZ7YI8mEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jFWWko8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jFWWk48mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_mlHloIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jEZ7YY8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jEaicI8mEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jFWWlI8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jFWWlY8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ncDNoIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jEaicY8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jEbJgI8mEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jFWWlo8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jFWWl48mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_oUgfoIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jEbJgY8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jEbJgo8mEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jFWWmI8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jFWWmY8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_o5TOwIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jEbJg48mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jEbwkI8mEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jFW9oI8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jFW9oY8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_pnJzQIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jEbwkY8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wpWrsKWvEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_wocFsKWvEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wpWrsaWvEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xtNVYKWvEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_xs8PoKWvEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xtNVYaWvEeq2dLYfuMvqgg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1c8OYY8lEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1c8OYo8lEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1c8OY48lEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1c8OZI8lEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1c8OZY8lEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1c8OZo8lEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1c8OZ48lEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1c8OaI8lEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1c8OaY8lEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:CanonicalStyle" xmi:id="_jEYGMI8mEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_kkWnwIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1c7nUI8lEeq5HrfdV5ATIg" x="260" y="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1dH0kI8lEeq5HrfdV5ATIg" type="Enumeration_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kC_DgY8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kC_Dgo8mEeq5HrfdV5ATIg" key="canonical" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1dH0ko8lEeq5HrfdV5ATIg" type="Enumeration_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1dIboI8lEeq5HrfdV5ATIg" type="Enumeration_LiteralCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEAXMI8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEAXMY8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_kDARoI8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEAXMo8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEAXM48mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_GeF-8IvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kDARoY8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kDA4sI8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEAXNI8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEAXNY8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_VdQs8IvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kDA4sY8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kDA4so8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEAXNo8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEAXN48mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_YIbSsIvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kDA4s48mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kDBfwI8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEAXOI8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEAXOY8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_bZFyMIvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kDBfwY8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kDCG0I8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEAXOo8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEAXO48mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_czCAoIvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kDCG0Y8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kDCG0o8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEAXPI8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEAXPY8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_dzPgcIvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kDCG048mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kDCt4I8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEAXPo8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEAXP48mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_ez5sMIvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kDCt4Y8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kDDU8I8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEA-QI8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEA-QY8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_flb20IvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kDDU8Y8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kDDU8o8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kEA-Qo8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kEA-Q48mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_gV4cUIvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kDDU848mEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1dIboY8lEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1dIboo8lEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1dIbo48lEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1dIbpI8lEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:CanonicalStyle" xmi:id="_kC_DgI8mEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Enumeration" href="AIML.profile.uml#_D6R-YIvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1dH0kY8lEeq5HrfdV5ATIg" x="500" y="320"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1dQ-gI8lEeq5HrfdV5ATIg" type="Enumeration_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ksodcY8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kspEgI8mEeq5HrfdV5ATIg" key="canonical" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1dRlkI8lEeq5HrfdV5ATIg" type="Enumeration_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1dRlkY8lEeq5HrfdV5ATIg" type="Enumeration_LiteralCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kt7d8I8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kt7d8Y8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_ksqSoI8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kt7d8o8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kt7d848mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_FE7PwIvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ksqSoY8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ksqSoo8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kt7d9I8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kt7d9Y8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_GM6ykIvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ksqSo48mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ksq5sI8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kt7d9o8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kt7d948mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_IXWp0IvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ksq5sY8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ksq5so8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kt7d-I8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kt7d-Y8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_KEe6AIvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ksq5s48mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ksq5tI8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kt7d-o8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kt7d-48mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_LzG_AIvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ksq5tY8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ksrgwI8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kt7d_I8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kt8FAI8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_MmTWgIvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ksrgwY8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ksrgwo8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kt8FAY8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kt8FAo8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_Ndwi8IvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ksrgw48mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ksrgxI8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kt8FA48mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kt8FBI8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_OHKFQIvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ksrgxY8mEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kssH0I8mEeq5HrfdV5ATIg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kt8FBY8mEeq5HrfdV5ATIg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_kt8FBo8mEeq5HrfdV5ATIg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_O3f9EIvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kssH0Y8mEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1dRlko8lEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1dRlk48lEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1dRllI8lEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1dRllY8lEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:CanonicalStyle" xmi:id="_ksodcI8mEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Enumeration" href="AIML.profile.uml#_AiQ84IvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1dQ-gY8lEeq5HrfdV5ATIg" x="720" y="320"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_If4SAK8eEeqUEZ8AVVPlLA" type="Class_MetaclassShape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_If7VUK8eEeqUEZ8AVVPlLA" source="Stereotype_Annotation">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_If7VUa8eEeqUEZ8AVVPlLA" key="StereotypeWithQualifiedNameList" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_If7VUq8eEeqUEZ8AVVPlLA" key="StereotypeList" value="StandardProfile::Metaclass"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_If7VU68eEeqUEZ8AVVPlLA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_If7VVK8eEeqUEZ8AVVPlLA" key="PropStereoDisplay" value=""/>
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_If7VVa8eEeqUEZ8AVVPlLA" key="StereotypePropertyLocation" value="Compartment"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_If6HMK8eEeqUEZ8AVVPlLA" type="Class_MetaclassNameLabel"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_If6HMa8eEeqUEZ8AVVPlLA" x="360" y="220"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ThxeYLBsEeqpLKLYM3OEXg" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ThxeYbBsEeqpLKLYM3OEXg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ThxeY7BsEeqpLKLYM3OEXg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ThxeYrBsEeqpLKLYM3OEXg" x="560" y="220"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_xCeOMY8lEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_xCeOMo8lEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_xCeOM48lEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_JNlskK8eEeqUEZ8AVVPlLA" type="Extension_Edge" source="_1c7AQI8lEeq5HrfdV5ATIg" target="_If4SAK8eEeqUEZ8AVVPlLA">
+ <styles xmi:type="notation:FontStyle" xmi:id="_JNlska8eEeqUEZ8AVVPlLA"/>
+ <element xmi:type="uml:Extension" href="AIML.profile.uml#_JM3T0K8eEeqUEZ8AVVPlLA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JNlskq8eEeqUEZ8AVVPlLA" points="[400, 340, -643984, -643984]$[400, 270, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JORpEK8eEeqUEZ8AVVPlLA" id="(0.7291666666666666,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JOSQIK8eEeqUEZ8AVVPlLA" id="(0.4,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ThyFcLBsEeqpLKLYM3OEXg" type="StereotypeCommentLink" source="_If4SAK8eEeqUEZ8AVVPlLA" target="_ThxeYLBsEeqpLKLYM3OEXg">
+ <styles xmi:type="notation:FontStyle" xmi:id="_ThyFcbBsEeqpLKLYM3OEXg"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_ThzTkbBsEeqpLKLYM3OEXg" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ThyFcrBsEeqpLKLYM3OEXg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ThysgLBsEeqpLKLYM3OEXg"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ThzTkLBsEeqpLKLYM3OEXg"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_M23iMI8mEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Type of Data" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_ZQV4UJbREeq1-Ze45jZMTg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZQWfYJbREeq1-Ze45jZMTg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZQWfYZbREeq1-Ze45jZMTg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_mwGpEJbREeq1-Ze45jZMTg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_mveW8JbREeq1-Ze45jZMTg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mwGpEZbREeq1-Ze45jZMTg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZQWfYpbREeq1-Ze45jZMTg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZQWfY5bREeq1-Ze45jZMTg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZQWfZJbREeq1-Ze45jZMTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZQWfZZbREeq1-Ze45jZMTg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZQXGcJbREeq1-Ze45jZMTg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZQXGcZbREeq1-Ze45jZMTg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZQXGcpbREeq1-Ze45jZMTg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZQXGc5bREeq1-Ze45jZMTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZQXGdJbREeq1-Ze45jZMTg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ZQQYwJbREeq1-Ze45jZMTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZQV4UZbREeq1-Ze45jZMTg" x="380" y="360"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_M23iMY8mEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_M23iMo8mEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_M23iM48mEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_ZJoe4I8nEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Pooling_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_As8REI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_As8REY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_As8REo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_As8RE48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_tPrdkIVXEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_As8RFI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_As8RFY8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_uGxdoIVXEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_As8RFo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_As8RF48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_As8RGI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_As8RGY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_As8RGo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_As8RG48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_As8RHI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_As8RHY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_As8RHo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_As8RH48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_rL8rQIVXEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_As8RI48oEeq5HrfdV5ATIg" x="-100" y="820"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_As84II8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_As84IY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_As84Io8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_As84I48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Y5DYIIVWEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_As84JI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_As84JY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_As9fMI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_As9fMY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_As9fMo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_As9fM48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_As9fNI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_As9fNY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_As9fNo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_As9fN48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_TS3LsIVWEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_As9fO48oEeq5HrfdV5ATIg" x="400" y="980"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_As9fPI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_As9fPY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_As9fPo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_As9fP48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_As9fQI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_As9fQY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_As9fQo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_As9fQ48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_As9fRI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_As9fRY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_As9fRo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_As9fR48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_y5HSoIVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_As9fS48oEeq5HrfdV5ATIg" x="-160" y="640"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_As_UYI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_As_UYY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_As_UYo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_As_UY48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_As_UZI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_As_UZY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_As_UZo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_As_UZ48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_As_UaI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_As_UaY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_As_Uao8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_As_Ua48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_vkD30IVTEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_As_Ub48oEeq5HrfdV5ATIg" x="960" y="540"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtAih48oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtAiiI8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtAiiY8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtAiio8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtAii48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtAijI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtAijY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtAijo8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtAij48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtAikI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtAikY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtAiko8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_b9-hsIVWEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtAilo8oEeq5HrfdV5ATIg" x="420" y="1120"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtBwqI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtBwqY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtBwqo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_AtBwq48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_mqeLgIVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtBwrI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jyM2MKZ3EeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_jxSQMKZ3EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jyM2MaZ3EeqIr7xwFiWQGQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtBwrY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtBwro8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtBwr48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtBwsI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtBwsY8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtBwso8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtBws48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtBwtI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtBwtY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_h3EG4IVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtBwuY8oEeq5HrfdV5ATIg" x="-300" y="460"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtCXsI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtCXsY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtCXso8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtCXs48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtCXtI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtCXtY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtCXto8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtCXt48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtCXuI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtCXuY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtCXuo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtCXu48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_1WhB0IVXEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtCXv48oEeq5HrfdV5ATIg" x="-40" y="980"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtDl0I8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtDl0Y8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtDl0o8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_AtDl048oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_K5-DkIVVEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtDl1I8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtDl1Y8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtDl1o8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtDl148oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtDl2I8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtDl2Y8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtDl2o8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtDl248oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtDl3I8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtDl3Y8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_FjbcsIVVEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtDl4Y8oEeq5HrfdV5ATIg" x="380" y="480" width="181" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtEM948oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtEM-I8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtEM-Y8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtEM-o8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtEM-48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtEM_I8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtEM_Y8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtEM_o8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtEM_48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtENAI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtENAY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtENAo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_VqZVsIVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtEz8o8oEeq5HrfdV5ATIg" x="240" y="980"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtEz848oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtEz9I8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtEz9Y8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtEz9o8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtEz948oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtEz-I8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtEz-Y8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtEz-o8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtEz-48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtEz_I8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtEz_Y8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtEz_o8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_sAviEIVTEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtE0Ao8oEeq5HrfdV5ATIg" x="1240" y="540"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtE0A48oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtE0BI8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtE0BY8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtE0Bo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtE0B48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtE0CI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtE0CY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtE0Co8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtE0C48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtE0DI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtE0DY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtE0Do8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_wYbekIVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtE0Eo8oEeq5HrfdV5ATIg" x="-280" y="640"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtGCII8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtGCIY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtGCIo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_AtGCI48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_vvW-UIVSEeqvavUi0dxRAw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtGCJI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtGCJY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtGCJo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtGCJ48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtGCKI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtGCKY8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtGCKo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtGCK48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtGCLI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtGCLY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_spFw8IVSEeqvavUi0dxRAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtGCMY8oEeq5HrfdV5ATIg" x="1060" y="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtGpII8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtGpIY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtGpIo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtGpI48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtGpJI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtGpJY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtGpJo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtGpJ48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtGpKI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtGpKY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtGpKo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtGpK48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_nMBrUIVSEeqvavUi0dxRAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtGpL48oEeq5HrfdV5ATIg" x="480" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtHQMI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtHQMY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtHQMo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtHQM48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtHQNI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtHQNY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtHQNo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtHQN48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtHQOI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtHQOY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtHQOo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtHQO48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_dQfZ0IVTEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtHQP48oEeq5HrfdV5ATIg" x="1700" y="540"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtHQQY8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtHQQo8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtHQQ48oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtHQRI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtHQRY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtHQRo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtHQR48oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtHQSI8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtHQSY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtHQSo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtHQS48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtHQTI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ddho4IVWEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtHQUI8oEeq5HrfdV5ATIg" x="580" y="1120"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtH3QI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtH3QY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtH3Qo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtH3Q48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtH3RI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtH3RY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtH3Ro8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtH3R48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtH3SI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtH3SY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtH3So8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtH3S48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_cdWFoIVTEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtH3T48oEeq5HrfdV5ATIg" x="1560" y="540"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtH3UI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtH3UY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtH3Uo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtH3U48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtH3VI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtH3VY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtH3Vo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtH3V48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtH3WI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtH3WY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtH3Wo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtH3W48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_QF-D0IVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtH3X48oEeq5HrfdV5ATIg" x="-160" y="980"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtIeUI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtIeUY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtIeUo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtIeU48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtIeVI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtIeVY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtIeVo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtIeV48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtIeWI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtIeWY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtIeWo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtIeW48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_XxquwIVVEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtIeX48oEeq5HrfdV5ATIg" x="320" y="620"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtIeaI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtIeaY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtIeao8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_AtIea48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_cdy_UIVYEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtIebI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtIebY8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_dhzaAIVYEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtIebo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtIeb48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_fG5IgIVYEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtIecI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtIecY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtIeco8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtIec48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtIedI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtIedY8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtIedo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtIed48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtIeeI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtIeeY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Y3zwEIVYEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtIefY8oEeq5HrfdV5ATIg" x="700" y="360"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtJFYI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtJFYY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtJFYo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_AtJFY48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Ayj5QIVWEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtJFZI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtJFZY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtJFZo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtJFZ48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtJFaI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtJFaY8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtJFao8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtJFa48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtJFbI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtJFbY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_6bJEMIVVEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtJFcY8oEeq5HrfdV5ATIg" x="280" y="820" width="161" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtJseo8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtJse48oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtJsfI8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_AtJsfY8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_CkDW8IVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtJsfo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtJsf48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtJsgI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtJsgY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtJsgo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtJsg48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtJshI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtJshY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtJsho8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtJsh48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_qYSzAIVSEeqvavUi0dxRAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtJsi48oEeq5HrfdV5ATIg" x="320" y="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtKTgI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtKTgY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtKTgo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtKTg48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtKThI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtKThY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtKTho8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtKTh48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtKTiI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtKTiY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtKTio8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtKTi48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_uVbhgIVTEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtKTj48oEeq5HrfdV5ATIg" x="1100" y="540"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtKTl48oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtKTmI8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtKTmY8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_AtKTmo8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_KnpSkIVXEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtKTm48oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xB1gQKZ3EeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_xBPDUKZ3EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xB1gQaZ3EeqIr7xwFiWQGQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtKTnI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtKTnY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtKTno8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtKTn48oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtKToI8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtKToY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtKToo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtKTo48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtKTpI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Cfb1UIVXEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtKTqI8oEeq5HrfdV5ATIg" y="640"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtKTqY8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtKTqo8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtKTq48oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtK6kI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtK6kY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtK6ko8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtK6k48oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtK6lI8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtK6lY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtK6lo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtK6l48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtK6mI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_2J_tMIVXEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtK6nI8oEeq5HrfdV5ATIg" x="80" y="980"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtK6nY8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtK6no8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtK6n48oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtK6oI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtK6oY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtK6oo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtK6o48oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtK6pI8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtK6pY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtK6po8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtK6p48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtK6qI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_aIzlQIVVEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtK6rI8oEeq5HrfdV5ATIg" x="440" y="620"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtK6rY8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtK6ro8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtK6r48oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_AtK6sI8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_3JChoIVSEeqvavUi0dxRAw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtK6sY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtK6so8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtK6s48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtK6tI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtK6tY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtK6to8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtK6t48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtK6uI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtK6uY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtK6uo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_x9fp0IVSEeqvavUi0dxRAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtK6vo8oEeq5HrfdV5ATIg" x="1500" y="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtLhoI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtLhoY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtLhoo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtLho48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtLhpI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtLhpY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtLhpo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtLhp48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtLhqI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtLhqY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtLhqo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtLhq48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Y8sCUIVTEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtLhr48oEeq5HrfdV5ATIg" x="1420" y="540"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtMIwI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtMIwY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtMIwo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtMIw48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtMIxI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtMIxY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtMIxo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtMIx48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtMIyI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtMIyY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtMIyo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtMIy48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_SVcMEIVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtMIz48oEeq5HrfdV5ATIg" x="-400" y="640"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_AtMI0I8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtMI0Y8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtMI0o8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_AtMI048oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_K3ga4IVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtMI1I8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtMvwI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtMvwY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtMvwo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtMvw48oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_AtMvxI8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_AtMvxY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_AtMvxo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_AtMvx48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtMvyI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_H6da8IVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AtMvzI8oEeq5HrfdV5ATIg" x="20" y="320"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ZJoe4Y8nEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ZJoe4o8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_ZJoe448nEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_6vmLQK8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_As7C8I8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtCXsI8oEeq5HrfdV5ATIg" target="_As8REI8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_As7C8Y8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_OGCZII8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_As7C8o8oEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_As7C848oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_6B2IgIVXEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_As7C9I8oEeq5HrfdV5ATIg" points="[10, 970, -643984, -643984]$[10, 929, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_As7C9Y8oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_As7C9o8oEeq5HrfdV5ATIg" id="(0.5687203791469194,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_As-GQY8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtEz848oEeq5HrfdV5ATIg" target="_AtGCII8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_As-GQo8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_As-GQ48oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_As-GRI8oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_As-GRY8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_7a4U0IVTEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_As-GRo8oEeq5HrfdV5ATIg" points="[1290, 530, -643984, -643984]$[1210, 293, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_As-GR48oEeq5HrfdV5ATIg" id="(0.5084745762711864,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_As-GSI8oEeq5HrfdV5ATIg" id="(0.8121827411167513,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_As-tUY8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtEM948oEeq5HrfdV5ATIg" target="_AtJFYI8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_As-tUo8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_As-tU48oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_As-tVI8oEeq5HrfdV5ATIg" x="1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_As-tVY8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_geEBsIVWEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_As-tVo8oEeq5HrfdV5ATIg" points="[190, 970, -643984, -643984]$[250, 911, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_As-tV48oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_As-tWI8oEeq5HrfdV5ATIg" id="(0.37267080745341613,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_As_7cI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtBwqI8oEeq5HrfdV5ATIg" target="_AtMI0I8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtAigI8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtAigY8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtAigo8oEeq5HrfdV5ATIg" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtAig48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_Ud9iUIVVEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtAihI8oEeq5HrfdV5ATIg" points="[-170, 450, -643984, -643984]$[30, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtAihY8oEeq5HrfdV5ATIg" id="(0.7734806629834254,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtAiho8oEeq5HrfdV5ATIg" id="(0.4819277108433735,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtBJkI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtGCII8oEeq5HrfdV5ATIg" target="_AtGpII8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtBJkY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtBJko8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtBJk48oEeq5HrfdV5ATIg" x="-633" y="148"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtBJlI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_CV1X8IVYEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtBJlY8oEeq5HrfdV5ATIg" points="[830, 170, -643984, -643984]$[550, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtBJlo8oEeq5HrfdV5ATIg" id="(0.5076142131979695,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtBJl48oEeq5HrfdV5ATIg" id="(0.8,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtBJmY8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtLhoI8oEeq5HrfdV5ATIg" target="_AtK6rY8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtBJmo8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtBJm48oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtBJnI8oEeq5HrfdV5ATIg" x="1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtBJnY8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_g8dVQIVTEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtBJno8oEeq5HrfdV5ATIg" points="[1450, 530, -643984, -643984]$[1530, 433, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtBJn48oEeq5HrfdV5ATIg" id="(0.46153846153846156,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtBJoI8oEeq5HrfdV5ATIg" id="(0.1895734597156398,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtBwoI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtDl0I8oEeq5HrfdV5ATIg" target="_AtMI0I8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtBwoY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtBwoo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtBwo48oEeq5HrfdV5ATIg" x="-155" y="96"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtBwpI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_TaQCkIVVEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtBwpY8oEeq5HrfdV5ATIg" points="[390, 470, -643984, -643984]$[70, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtBwpo8oEeq5HrfdV5ATIg" id="(0.4419889502762431,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtBwp48oEeq5HrfdV5ATIg" id="(0.7228915662650602,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtC-wI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtIeaI8oEeq5HrfdV5ATIg" target="_AtJseo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtC-wY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtC-wo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtC-w48oEeq5HrfdV5ATIg" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtC-xI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_hzfRoIVYEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtC-xY8oEeq5HrfdV5ATIg" points="[770, 450, -643984, -643984]$[470, 293, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtC-xo8oEeq5HrfdV5ATIg" id="(0.2843601895734597,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtC-x48oEeq5HrfdV5ATIg" id="(0.8290155440414507,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtC-yI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtKTqY8oEeq5HrfdV5ATIg" target="_As8REI8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtC-yY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_OGXwUI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtC-yo8oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtC-y48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_6loyEIVXEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtC-zI8oEeq5HrfdV5ATIg" points="[130, 970, -643984, -643984]$[70, 929, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtC-zY8oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtC-zo8oEeq5HrfdV5ATIg" id="(0.8530805687203792,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtEM4I8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtMIwI8oEeq5HrfdV5ATIg" target="_AtBwqI8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtEM4Y8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_OHWAsI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtEM4o8oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtEM448oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_3UmmgIVUEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtEM5I8oEeq5HrfdV5ATIg" points="[-360, 1360, -643984, -643984]$[-280, 1283, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtEM5Y8oEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtEM5o8oEeq5HrfdV5ATIg" id="(0.22099447513812154,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtEM6I8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtH3UI8oEeq5HrfdV5ATIg" target="_As8REI8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtEM6Y8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_OFHMEI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtEM6o8oEeq5HrfdV5ATIg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtEM648oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_5a1L0IVXEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtEM7I8oEeq5HrfdV5ATIg" points="[-130, 970, -643984, -643984]$[-70, 929, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtEM7Y8oEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtEM7o8oEeq5HrfdV5ATIg" id="(0.1895734597156398,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtEM748oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_As_UYI8oEeq5HrfdV5ATIg" target="_AtGCII8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtEM8I8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtEM8Y8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtEM8o8oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtEM848oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_9Q2_AIVTEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtEM9I8oEeq5HrfdV5ATIg" points="[1010, 530, -643984, -643984]$[1090, 293, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtEM9Y8oEeq5HrfdV5ATIg" id="(0.5084745762711864,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtEM9o8oEeq5HrfdV5ATIg" id="(0.20304568527918782,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtFbAI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtHQMI8oEeq5HrfdV5ATIg" target="_AtK6rY8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtFbAY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtFbAo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtFbA48oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtFbBI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_iK5eUIVTEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtFbBY8oEeq5HrfdV5ATIg" points="[1770, 530, -643984, -643984]$[1670, 433, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtFbBo8oEeq5HrfdV5ATIg" id="(0.46153846153846156,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtFbB48oEeq5HrfdV5ATIg" id="(0.8530805687203792,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtFbCI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_As8REI8oEeq5HrfdV5ATIg" target="_AtKTl48oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtFbCY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtFbCo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtFbC48oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtFbDI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_zKvGwIVXEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtFbDY8oEeq5HrfdV5ATIg" points="[-30, 810, -643984, -643984]$[70, 733, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtFbDo8oEeq5HrfdV5ATIg" id="(0.6635071090047393,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtFbD48oEeq5HrfdV5ATIg" id="(0.418848167539267,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtFbEI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtE0A48oEeq5HrfdV5ATIg" target="_AtBwqI8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtFbEY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_OFpXkI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtFbEo8oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtFbE48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_2i3nkIVUEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtFbFI8oEeq5HrfdV5ATIg" points="[-250, 630, -643984, -643984]$[-230, 553, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtFbFY8oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtFbFo8oEeq5HrfdV5ATIg" id="(0.4419889502762431,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtGCEI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtK6rY8oEeq5HrfdV5ATIg" target="_AtGCII8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtGCEY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtGCEo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtGCE48oEeq5HrfdV5ATIg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtGCFI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_i7emsIVTEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtGCFY8oEeq5HrfdV5ATIg" points="[1590, 330, -643984, -643984]$[1230, 293, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtGCFo8oEeq5HrfdV5ATIg" id="(0.47393364928909953,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtGCF48oEeq5HrfdV5ATIg" id="(0.9137055837563451,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtGCGI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtK6nY8oEeq5HrfdV5ATIg" target="_AtDl0I8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtGCGY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtGCGo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtGCG48oEeq5HrfdV5ATIg" x="120" y="131"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtGCHI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_dg9M0IVVEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtGCHY8oEeq5HrfdV5ATIg" points="[450, 610, -643984, -643984]$[450, 551, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtGCHo8oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtGCH48oEeq5HrfdV5ATIg" id="(0.4419889502762431,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtHQUY8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtJFYI8oEeq5HrfdV5ATIg" target="_AtKTl48oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtHQUo8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtHQU48oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtHQVI8oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtHQVY8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_eWQLMIVXEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtHQVo8oEeq5HrfdV5ATIg" points="[10, 810, -643984, -643984]$[90, 733, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtHQV48oEeq5HrfdV5ATIg" id="(0.4968944099378882,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtHQWI8oEeq5HrfdV5ATIg" id="(0.837696335078534,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtIeYI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtH3QI8oEeq5HrfdV5ATIg" target="_AtK6rY8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtIeYY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtIeYo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtIeY48oEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtIeZI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_hguf8IVTEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtIeZY8oEeq5HrfdV5ATIg" points="[1610, 530, -643984, -643984]$[1610, 433, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtIeZo8oEeq5HrfdV5ATIg" id="(0.46153846153846156,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtIeZ48oEeq5HrfdV5ATIg" id="(0.5687203791469194,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtJFc48oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtMI0I8oEeq5HrfdV5ATIg" target="_AtJseo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtJFdI8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtJFdY8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtJFdo8oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtJFd48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_2P_c8IVWEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtJFeI8oEeq5HrfdV5ATIg" points="[50, 310, -643984, -643984]$[130, 273, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtJFeY8oEeq5HrfdV5ATIg" id="(0.6024096385542169,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtJFeo8oEeq5HrfdV5ATIg" id="(0.41450777202072536,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtJFe48oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtKTgI8oEeq5HrfdV5ATIg" target="_AtGCII8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtJFfI8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtJFfY8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtJFfo8oEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtJFf48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_8DbikIVTEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtJFgI8oEeq5HrfdV5ATIg" points="[1150, 530, -643984, -643984]$[1150, 293, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtJFgY8oEeq5HrfdV5ATIg" id="(0.5084745762711864,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtJFgo8oEeq5HrfdV5ATIg" id="(0.5076142131979695,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtJsco8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtIeUI8oEeq5HrfdV5ATIg" target="_AtDl0I8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtJsc48oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtJsdI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtJsdY8oEeq5HrfdV5ATIg" x="128" y="114"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtJsdo8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_dGXikIVVEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtJsd48oEeq5HrfdV5ATIg" points="[350, 610, -643984, -643984]$[350, 551, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtJseI8oEeq5HrfdV5ATIg" id="(0.8,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtJseY8oEeq5HrfdV5ATIg" id="(0.11049723756906077,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtKTkI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_As9fPI8oEeq5HrfdV5ATIg" target="_AtBwqI8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtKTkY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_OG6i4I8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtKTko8oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtKTk48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_2DdHsIVUEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtKTlI8oEeq5HrfdV5ATIg" points="[-110, 630, -643984, -643984]$[-170, 553, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtKTlY8oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtKTlo8oEeq5HrfdV5ATIg" id="(0.7734806629834254,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtLhsI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtAih48oEeq5HrfdV5ATIg" target="_As84II8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtLhsY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtLhso8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtLhs48oEeq5HrfdV5ATIg" x="67" y="98"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtLhtI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_e4Tk0IVWEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtLhtY8oEeq5HrfdV5ATIg" points="[390, 1110, -643984, -643984]$[410, 1073, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtLhto8oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtLht48oEeq5HrfdV5ATIg" id="(0.36363636363636365,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtLhuI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtKTl48oEeq5HrfdV5ATIg" target="_AtBwqI8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtLhuY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_OEwmwI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtLhuo8oEeq5HrfdV5ATIg" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtLhu48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_V3zYMIVXEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtLhvI8oEeq5HrfdV5ATIg" points="[50, 630, -643984, -643984]$[-129, 510, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtLhvY8oEeq5HrfdV5ATIg" id="(0.31413612565445026,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtLhvo8oEeq5HrfdV5ATIg" id="(1.0,0.5825242718446602)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtMIsI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_As84II8oEeq5HrfdV5ATIg" target="_AtJFYI8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtMIsY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtMIso8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtMIs48oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtMItI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_f8tBEIVWEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtMItY8oEeq5HrfdV5ATIg" points="[410, 970, -643984, -643984]$[310, 911, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtMIto8oEeq5HrfdV5ATIg" id="(0.36363636363636365,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtMIt48oEeq5HrfdV5ATIg" id="(0.7453416149068323,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtMIuI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtJseo8oEeq5HrfdV5ATIg" target="_AtGpII8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtMIuY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtMIuo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtMIu48oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtMIvI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_DTFDUIVYEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtMIvY8oEeq5HrfdV5ATIg" points="[170, 170, -643984, -643984]$[510, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtMIvo8oEeq5HrfdV5ATIg" id="(0.6217616580310881,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtMIv48oEeq5HrfdV5ATIg" id="(0.4,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_AtMvzY8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_AtHQQY8oEeq5HrfdV5ATIg" target="_As84II8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_AtMvzo8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_AtMvz48oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_AtMv0I8oEeq5HrfdV5ATIg" x="8" y="135"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_AtMv0Y8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_fQk64IVWEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AtMv0o8oEeq5HrfdV5ATIg" points="[550, 1110, -643984, -643984]$[510, 1073, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtMv048oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AtMv1I8oEeq5HrfdV5ATIg" id="(0.8181818181818182,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_dNXaEI8nEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Padding_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_GBLx6Y8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBLx6o8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBLx648oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_GBLx7I8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_UZswkIVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GBLx7Y8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBLx7o8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBLx748oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBLx8I8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBLx8Y8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBLx8o8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBLx848oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBLx9I8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBLx9Y8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBLx9o8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_w6iwUIVYEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBLx-o8oEeq5HrfdV5ATIg" x="620" y="80"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GBLyA48oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBLyBI8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBLyBY8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBLyBo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBLyB48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBLyCI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBLyCY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBLyCo8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBLyC48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBLyDI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBLyDY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBLyDo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_mNvZ8IVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBLyEo8oEeq5HrfdV5ATIg" x="960" y="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GBLyFI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBLyFY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBLyFo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBLyF48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBLyGI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBLyGY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBLyGo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBLyG48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBLyHI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBLyHY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBLyHo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBLyH48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_aphv4IVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBLyI48oEeq5HrfdV5ATIg" x="260" y="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GBMY8Y8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBMY8o8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBMY848oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBMY9I8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBMY9Y8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBMY9o8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMY948oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBMY-I8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBMY-Y8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBMY-o8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBMY-48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMY_I8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_sNFGMIVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZAI8oEeq5HrfdV5ATIg" x="1220" y="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GBMZAY8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBMZAo8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBMZA48oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBMZBI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBMZBY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBMZBo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZB48oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBMZCI8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBMZCY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBMZCo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBMZC48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZDI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_gxtPEIVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZEI8oEeq5HrfdV5ATIg" x="680" y="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GBMZEY8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBMZEo8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBMZE48oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBMZFI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBMZFY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBMZFo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZF48oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBMZGI8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBMZGY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBMZGo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBMZG48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZHI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_okP-UIVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZII8oEeq5HrfdV5ATIg" x="1080" y="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GBMZIY8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBMZIo8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBMZI48oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBMZJI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBMZJY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBMZJo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZJ48oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBMZKI8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBMZKY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBMZKo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBMZK48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZLI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_kjrr4IVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZMI8oEeq5HrfdV5ATIg" x="820" y="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GBMZMY8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBMZMo8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBMZM48oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBMZNI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBMZNY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBMZNo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZN48oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBMZOI8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBMZOY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBMZOo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBMZO48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZPI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_YlZU8IVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZQI8oEeq5HrfdV5ATIg" x="120" y="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GBMZSY8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBMZSo8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBMZS48oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBMZTI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBMZTY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBMZTo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZT48oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBMZUI8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBMZUY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBMZUo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBMZU48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZVI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_cIwG8IVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBMZWI8oEeq5HrfdV5ATIg" x="400" y="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GBNAAI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBNAAY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBNAAo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBNAA48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBNABI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBNABY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBNABo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GBNAB48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GBNACI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GBNACY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GBNACo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBNAC48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_fdB7IIVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GBNAD48oEeq5HrfdV5ATIg" x="540" y="300"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_dNXaEY8nEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_dNXaEo8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_dNXaE48nEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_8IfQ0K8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_GBLK0Y8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_GBMZIY8oEeq5HrfdV5ATIg" target="_GBLx6Y8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBLK0o8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_GBLK048oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GBLK1I8oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GBLK1Y8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_5Tm3kIVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBLK1o8oEeq5HrfdV5ATIg" points="[870, 290, -643984, -643984]$[690, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBLK148oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBLK2I8oEeq5HrfdV5ATIg" id="(0.54421768707483,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_GBLx4Y8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_GBMZMY8oEeq5HrfdV5ATIg" target="_GBLx6Y8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBLx4o8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_GBLx448oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GBLx5I8oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GBLx5Y8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_zJF2EIVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBLx5o8oEeq5HrfdV5ATIg" points="[150, 290, -643984, -643984]$[630, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBLx548oEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBLx6I8oEeq5HrfdV5ATIg" id="(0.1360544217687075,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_GBLx-48oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_GBMZAY8oEeq5HrfdV5ATIg" target="_GBLx6Y8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBLx_I8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_GBLx_Y8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GBLx_o8oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GBLx_48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_4uA3MIVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBLyAI8oEeq5HrfdV5ATIg" points="[730, 290, -643984, -643984]$[650, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBLyAY8oEeq5HrfdV5ATIg" id="(0.5714285714285714,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBLyAo8oEeq5HrfdV5ATIg" id="(0.272108843537415,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_GBLyJI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_GBLyFI8oEeq5HrfdV5ATIg" target="_GBLx6Y8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBLyJY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_GBLyJo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GBLyJ48oEeq5HrfdV5ATIg" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GBLyKI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_0IHqIIVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBLyKY8oEeq5HrfdV5ATIg" points="[310, 290, -643984, -643984]$[630, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBLyKo8oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBLyK48oEeq5HrfdV5ATIg" id="(0.1360544217687075,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_GBMZQY8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_GBLyA48oEeq5HrfdV5ATIg" target="_GBLx6Y8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBMZQo8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_GBMZQ48oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GBMZRI8oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GBMZRY8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_6g_QsIVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBMZRo8oEeq5HrfdV5ATIg" points="[1010, 290, -643984, -643984]$[730, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBMZR48oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBMZSI8oEeq5HrfdV5ATIg" id="(0.8163265306122449,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_GBNAEI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_GBMY8Y8oEeq5HrfdV5ATIg" target="_GBLx6Y8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBNAEY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_GBNAEo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GBNAE48oEeq5HrfdV5ATIg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GBNAFI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_7vcA0IVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBNAFY8oEeq5HrfdV5ATIg" points="[1270, 290, -643984, -643984]$[730, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBNAFo8oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBNAF48oEeq5HrfdV5ATIg" id="(0.8163265306122449,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_GBNAGI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_GBNAAI8oEeq5HrfdV5ATIg" target="_GBLx6Y8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBNAGY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_GBNAGo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GBNAG48oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GBNAHI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_3Rpm4IVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBNAHY8oEeq5HrfdV5ATIg" points="[590, 290, -643984, -643984]$[650, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBNAHo8oEeq5HrfdV5ATIg" id="(0.5714285714285714,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBNAH48oEeq5HrfdV5ATIg" id="(0.272108843537415,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_GBNAII8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_GBMZSY8oEeq5HrfdV5ATIg" target="_GBLx6Y8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBNAIY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_GBNAIo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GBNAI48oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GBNAJI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_2srRkIVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBNAJY8oEeq5HrfdV5ATIg" points="[450, 290, -643984, -643984]$[650, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBNAJo8oEeq5HrfdV5ATIg" id="(0.5714285714285714,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBNAJ48oEeq5HrfdV5ATIg" id="(0.272108843537415,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_GBNAKI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_GBMZEY8oEeq5HrfdV5ATIg" target="_GBLx6Y8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GBNAKY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_GBNAKo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GBNAK48oEeq5HrfdV5ATIg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_GBNALI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_7KBmoIVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBNALY8oEeq5HrfdV5ATIg" points="[1130, 290, -643984, -643984]$[730, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBNALo8oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GBNAL48oEeq5HrfdV5ATIg" id="(0.8163265306122449,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_qs6IYI8nEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Non-linear_activations_(weighted sum, nonlinearity)" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_dny20I8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dny20Y8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dny20o8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_dny2048oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_vrowYIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dny21I8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dny21Y8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dny21o8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dny2148oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dny22I8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dny22Y8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dny22o8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dny2248oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dny23I8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dny23Y8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_uYqFkIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dny24Y8oEeq5HrfdV5ATIg" x="980" y="500"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dny24o8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dny2448oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dny25I8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_dny25Y8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Ki9qEIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dny25o8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dny2548oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dny26I8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dny26Y8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dny26o8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dny2648oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dny27I8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dny27Y8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dny27o8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dny2748oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Im3JwIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dny2848oEeq5HrfdV5ATIg" x="700" y="320"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dnzd6I8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dnzd6Y8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dnzd6o8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dnzd648oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dnzd7I8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dnzd7Y8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dnzd7o8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dnzd748oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dnzd8I8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dnzd8Y8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dnzd8o8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dnzd848oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_-FB30IVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dnzd948oEeq5HrfdV5ATIg" x="2080" y="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dnzd-I8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dnzd-Y8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dnzd-o8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_dnzd-48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_MoLDEIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dnzd_I8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dnzd_Y8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dnzd_o8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dnzd_48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dnzeAI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dnzeAY8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dnzeAo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dnzeA48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dnzeBI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn0E8I8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_FFiYEIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn0E9I8oEeq5HrfdV5ATIg" x="20" y="500"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn0E_Y8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn0E_o8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn0E_48oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_dn0FAI8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_QsGykIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn0FAY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn0FAo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn0FA48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn0FBI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn0FBY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn0FBo8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn0FB48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn0FCI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn0FCY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn0FCo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_O0zSsIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn0FDo8oEeq5HrfdV5ATIg" x="1660" y="320"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn0FFo8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn0FF48oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn0FGI8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn0sAI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn0sAY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn0sAo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn0sA48oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn0sBI8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn0sBY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn0sBo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn0sB48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn0sCI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_AwFawIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn0sDI8oEeq5HrfdV5ATIg" x="1560" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn0sFI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn0sFY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn0sFo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn0sF48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn0sGI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn0sGY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn0sGo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn0sG48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn0sHI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn0sHY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn0sHo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn0sH48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Tr5SkIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn0sI48oEeq5HrfdV5ATIg" x="1640" y="500"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn0sK48oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn0sLI8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn0sLY8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn0sLo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn0sL48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn0sMI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn0sMY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn0sMo8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn0sM48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn0sNI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn0sNY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn0sNo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_PQkzQIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn0sOo8oEeq5HrfdV5ATIg" x="1200" y="500"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn1TII8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn1TIY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn1TIo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn1TI48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn1TJI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn1TJY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn1TJo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn1TJ48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn1TKI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn1TKY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn1TKo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn1TK48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_kIQXUIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn1TL48oEeq5HrfdV5ATIg" x="3080" y="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn2hMI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn2hMY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn2hMo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_dn2hM48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_pyKbkIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn2hNI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn2hNY8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_qj-TAIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn2hNo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn2hN48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn2hOI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn2hOY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn2hOo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn2hO48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn2hPI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn2hPY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn2hPo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn2hP48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_oPGGUIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn2hQ48oEeq5HrfdV5ATIg" x="480" y="500"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn2hRI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn2hRY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn2hRo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn2hR48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn2hSI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn2hSY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn2hSo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn2hS48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn2hTI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn2hTY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn2hTo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn2hT48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Q1o3IIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn2hU48oEeq5HrfdV5ATIg" x="1774" y="497"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn3IQI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn3IQY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn3IQo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_dn3IQ48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_FZhZIIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn3IRI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn3IRY8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_KHN3UIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn3IRo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn3IR48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn3ISI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn3ISY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn3ISo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn3IS48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn3ITI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn3ITY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn3ITo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn3IT48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_AXPyEIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn3IU48oEeq5HrfdV5ATIg" x="1880" y="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn3vXo8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn3vX48oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn3vYI8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn3vYY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn3vYo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn3vY48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn3vZI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn3vZY8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn3vZo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn3vZ48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn3vaI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn3vaY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ef3LcIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn3vbY8oEeq5HrfdV5ATIg" x="3220" y="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn3vbo8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn3vb48oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn3vcI8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_dn3vcY8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_H7n-8IVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn3vco8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn3vc48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_J_NnUIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn3vdI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn3vdY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn3vdo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn3vd48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn3veI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn3veY8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn3veo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn3ve48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn3vfI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn3vfY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_FyhkcIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn3vgY8oEeq5HrfdV5ATIg" x="2680" y="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn3vg48oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn3vhI8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn3vhY8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn3vho8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn3vh48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn3viI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn3viY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn3vio8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn3vi48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn3vjI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn3vjY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn3vjo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_T9yJQIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn3vko8oEeq5HrfdV5ATIg" x="1440" y="500"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn4WZ48oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn4WaI8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn4WaY8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_dn4Wao8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_6bNcAIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn4Wa48oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn4WbI8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_7aGGIIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn4WbY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn4Wbo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn4Wb48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn4WcI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn4WcY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn4Wco8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn4Wc48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn4WdI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn4WdY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn4Wdo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_4wdxcIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn4Weo8oEeq5HrfdV5ATIg" x="720" y="500"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn4Wg48oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn4WhI8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn4WhY8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn4Who8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn4Wh48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn4WiI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn4WiY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn4Wio8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn4Wi48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn4WjI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn4WjY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn4Wjo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#__HL4YIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn4Wko8oEeq5HrfdV5ATIg" x="2200" y="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn49d48oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn49eI8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn49eY8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn49eo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn49e48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn49fI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn49fY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn49fo8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn49f48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn49gI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn49gY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn49go8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Q694gIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn49ho8oEeq5HrfdV5ATIg" x="1320" y="500"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn49iI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn49iY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn49io8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_dn49i48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_oCRnwIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn49jI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn49jY8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_pXDCUIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn49jo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn49j48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_qHZhMIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn49kI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn49kY8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_qxdK0IVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn49ko8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn49k48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_rp_8YIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn49lI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn49lY8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_uscZsIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn49lo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn49l48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_wd6XUIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn49mI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn49mY8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_w_bI8IVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn49mo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn49m48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn49nI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn49nY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn49no8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn49n48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn49oI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn49oY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn49oo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn49o48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_mNXUkIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn49p48oEeq5HrfdV5ATIg" x="2439" y="343"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn5kiI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn5kiY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn5kio8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn5ki48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn5kjI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn5kjY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn5kjo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn5kj48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn5kkI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn5kkY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn5kko8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn5kk48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_hnumMIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn5kl48oEeq5HrfdV5ATIg" x="2320" y="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn5kmI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn5kmY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn5kmo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_dn5km48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_VlPEsIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn5knI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn5knY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn5kno8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn5kn48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn5koI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn5koY8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn5koo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn5ko48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn5kpI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn5kpY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_T1MDYIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn5kqY8oEeq5HrfdV5ATIg" x="220" y="500"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_dn5kqo8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn5kq48oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn5krI8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn5krY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn5kro8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn5kr48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn5ksI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_dn5ksY8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_dn5kso8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_dn5ks48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_dn5ktI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn5ktY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_dgIz0IVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dn5kuY8oEeq5HrfdV5ATIg" x="2940" y="340"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ymR5wJa5Eeq1-Ze45jZMTg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ymWLMJa5Eeq1-Ze45jZMTg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ymWLMZa5Eeq1-Ze45jZMTg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_3IDb0Ja5Eeq1-Ze45jZMTg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_3HW4QJa5Eeq1-Ze45jZMTg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3IDb0Za5Eeq1-Ze45jZMTg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_62CJcJa5Eeq1-Ze45jZMTg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_60q3gJa5Eeq1-Ze45jZMTg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_62CJcZa5Eeq1-Ze45jZMTg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ymWLMpa5Eeq1-Ze45jZMTg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ymWLM5a5Eeq1-Ze45jZMTg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ymWLNJa5Eeq1-Ze45jZMTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ymWLNZa5Eeq1-Ze45jZMTg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ymWLNpa5Eeq1-Ze45jZMTg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ymWLN5a5Eeq1-Ze45jZMTg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ymWLOJa5Eeq1-Ze45jZMTg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ymWLOZa5Eeq1-Ze45jZMTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ymWLOpa5Eeq1-Ze45jZMTg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ymNBQJa5Eeq1-Ze45jZMTg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ymR5wZa5Eeq1-Ze45jZMTg" x="-240" y="500"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_qs6IYY8nEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_qs6IYo8nEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_qs6IY48nEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_9hsfcK8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_dnxosI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn4WZ48oEeq5HrfdV5ATIg" target="_dny24o8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dnxosY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_dnyPwI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dnyPwY8oEeq5HrfdV5ATIg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dnyPwo8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_8qf-EIVdEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dnyPw48oEeq5HrfdV5ATIg" points="[810, 490, -643984, -643984]$[870, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dnyPxI8oEeq5HrfdV5ATIg" id="(0.5347593582887701,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dnyPxY8oEeq5HrfdV5ATIg" id="(0.5980066445182725,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dnzd4I8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn4Wg48oEeq5HrfdV5ATIg" target="_dn0FFo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dnzd4Y8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_lzyA0I8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dnzd4o8oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dnzd448oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_heXHcIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dnzd5I8oEeq5HrfdV5ATIg" points="[2230, 330, -643984, -643984]$[1750, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dnzd5Y8oEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dnzd5o8oEeq5HrfdV5ATIg" id="(0.6920415224913494,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn0E9Y8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn2hRI8oEeq5HrfdV5ATIg" target="_dn0E_Y8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn0E9o8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_dn0E948oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn0E-I8oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn0E-Y8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_WoPu8IVdEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn0E-o8oEeq5HrfdV5ATIg" points="[1810, 487, -643984, -643984]$[1750, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn0E-48oEeq5HrfdV5ATIg" id="(0.46,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn0E_I8oEeq5HrfdV5ATIg" id="(0.5847953216374269,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn0FD48oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dnzd6I8oEeq5HrfdV5ATIg" target="_dn0FFo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn0FEI8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_lzGrYI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn0FEY8oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn0FEo8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_SfSgEIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn0FE48oEeq5HrfdV5ATIg" points="[2110, 330, -643984, -643984]$[1650, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn0FFI8oEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn0FFY8oEeq5HrfdV5ATIg" id="(0.3460207612456747,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn0sDY8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn1TII8oEeq5HrfdV5ATIg" target="_dn0FFo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn0sDo8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_l1zaEI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn0sD48oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn0sEI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_dbS6oIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn0sEY8oEeq5HrfdV5ATIg" points="[3110, 330, -643984, -643984]$[1810, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn0sEo8oEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn0sE48oEeq5HrfdV5ATIg" id="(0.8996539792387543,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn0sJI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn49iI8oEeq5HrfdV5ATIg" target="_dn0FFo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn0sJY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_l0J0QI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn0sJo8oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn0sJ48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_gMwVoIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn0sKI8oEeq5HrfdV5ATIg" points="[2510, 333, -643984, -643984]$[1790, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn0sKY8oEeq5HrfdV5ATIg" id="(0.38571428571428573,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn0sKo8oEeq5HrfdV5ATIg" id="(0.8304498269896193,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn1TEI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn0sFI8oEeq5HrfdV5ATIg" target="_dn0E_Y8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn1TEY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_dn1TEo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn1TE48oEeq5HrfdV5ATIg" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn1TFI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_WKteYIVdEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn1TFY8oEeq5HrfdV5ATIg" points="[1670, 490, -643984, -643984]$[1710, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn1TFo8oEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn1TF48oEeq5HrfdV5ATIg" id="(0.3508771929824561,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn1TGI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn0E_Y8oEeq5HrfdV5ATIg" target="_dn0FFo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn1TGY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_l0hAoI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn1TGo8oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn1TG48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_Kab40IVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn1THI8oEeq5HrfdV5ATIg" points="[1730, 310, -643984, -643984]$[1590, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn1THY8oEeq5HrfdV5ATIg" id="(0.4678362573099415,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn1THo8oEeq5HrfdV5ATIg" id="(0.1384083044982699,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn1TMI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn49d48oEeq5HrfdV5ATIg" target="_dny24o8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn1TMY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_dn1TMo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn1TM48oEeq5HrfdV5ATIg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn1TNI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_XLnXMIVcEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn1TNY8oEeq5HrfdV5ATIg" points="[1250, 490, -643984, -643984]$[950, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn1TNo8oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn1TN48oEeq5HrfdV5ATIg" id="(0.8637873754152824,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn16II8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dnzd-I8oEeq5HrfdV5ATIg" target="_dny24o8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn16IY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_dn16Io8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn16I48oEeq5HrfdV5ATIg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn16JI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_ckA0sIVbEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn16JY8oEeq5HrfdV5ATIg" points="[170, 490, -643984, -643984]$[230, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn16Jo8oEeq5HrfdV5ATIg" id="(0.6024096385542169,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn16J48oEeq5HrfdV5ATIg" id="(0.0664451827242525,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn16KI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn5kqo8oEeq5HrfdV5ATIg" target="_dn0FFo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn16KY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_l2mEQI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn16Ko8oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn16K48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_esL6wIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn16LI8oEeq5HrfdV5ATIg" points="[2970, 330, -643984, -643984]$[1810, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn16LY8oEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn16Lo8oEeq5HrfdV5ATIg" id="(0.8996539792387543,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn16L48oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dny24o8oEeq5HrfdV5ATIg" target="_dn0FFo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn16MI8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_dn16MY8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn16Mo8oEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn16M48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_dfBEYIVbEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn16NI8oEeq5HrfdV5ATIg" points="[310, 310, -643984, -643984]$[390, 270, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn16NY8oEeq5HrfdV5ATIg" id="(0.5980066445182725,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn16No8oEeq5HrfdV5ATIg" id="(0.0,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn16N48oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dny20I8oEeq5HrfdV5ATIg" target="_dny24o8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn16OI8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_dn16OY8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn16Oo8oEeq5HrfdV5ATIg" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn16O48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_ymuBcIVcEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn16PI8oEeq5HrfdV5ATIg" points="[1070, 490, -643984, -643984]$[910, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn16PY8oEeq5HrfdV5ATIg" id="(0.6024096385542169,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn16Po8oEeq5HrfdV5ATIg" id="(0.7308970099667774,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn16P48oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn5kmI8oEeq5HrfdV5ATIg" target="_dny24o8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn16QI8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_dn16QY8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn16Qo8oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn16Q48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_dEj9AIVbEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn16RI8oEeq5HrfdV5ATIg" points="[410, 490, -643984, -643984]$[370, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn16RY8oEeq5HrfdV5ATIg" id="(0.18604651162790697,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn16Ro8oEeq5HrfdV5ATIg" id="(0.39867109634551495,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn2hVY8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn3vXo8oEeq5HrfdV5ATIg" target="_dn0FFo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn2hVo8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_l2MboI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn2hV48oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn2hWI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_bY_rsIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn2hWY8oEeq5HrfdV5ATIg" points="[3270, 330, -643984, -643984]$[1810, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn2hWo8oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn2hW48oEeq5HrfdV5ATIg" id="(0.8996539792387543,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn3IVI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn2hMI8oEeq5HrfdV5ATIg" target="_dny24o8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn3vUI8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_dn3vUY8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn3vUo8oEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn3vU48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_yH-P8IVcEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn3vVI8oEeq5HrfdV5ATIg" points="[570, 490, -643984, -643984]$[570, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn3vVY8oEeq5HrfdV5ATIg" id="(0.5952380952380952,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn3vVo8oEeq5HrfdV5ATIg" id="(0.53156146179402,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn3vV48oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn3vbo8oEeq5HrfdV5ATIg" target="_dn0FFo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn3vWI8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_lzee0I8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn3vWY8oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn3vWo8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_fZNY0IVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn3vW48oEeq5HrfdV5ATIg" points="[2750, 330, -643984, -643984]$[1810, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn3vXI8oEeq5HrfdV5ATIg" id="(0.35398230088495575,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn3vXY8oEeq5HrfdV5ATIg" id="(0.8996539792387543,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn4WYI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn3IQI8oEeq5HrfdV5ATIg" target="_dn0FFo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn4WYY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_l1WHEI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn4WYo8oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn4WY48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_LicCsIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn4WZI8oEeq5HrfdV5ATIg" points="[1910, 330, -643984, -643984]$[1630, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn4WZY8oEeq5HrfdV5ATIg" id="(0.21390374331550802,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn4WZo8oEeq5HrfdV5ATIg" id="(0.2768166089965398,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn4We48oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn0sK48oEeq5HrfdV5ATIg" target="_dny24o8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn4WfI8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_dn4WfY8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn4Wfo8oEeq5HrfdV5ATIg" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn4Wf48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_WsaSsIVcEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn4WgI8oEeq5HrfdV5ATIg" points="[1110, 490, -643984, -643984]$[950, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn4WgY8oEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn4Wgo8oEeq5HrfdV5ATIg" id="(0.8637873754152824,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn49cI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn5kiI8oEeq5HrfdV5ATIg" target="_dn0FFo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn49cY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_l06pQI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn49co8oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn49c48oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_g0PMYIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn49dI8oEeq5HrfdV5ATIg" points="[2350, 330, -643984, -643984]$[1770, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn49dY8oEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn49do8oEeq5HrfdV5ATIg" id="(0.7612456747404844,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dn5kgI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_dn3vg48oEeq5HrfdV5ATIg" target="_dny24o8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dn5kgY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_dn5kgo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dn5kg48oEeq5HrfdV5ATIg" x="-37" y="65"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dn5khI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_X3PuIIVcEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dn5khY8oEeq5HrfdV5ATIg" points="[1330, 490, -643984, -643984]$[950, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn5kho8oEeq5HrfdV5ATIg" id="(0.2,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dn5kh48oEeq5HrfdV5ATIg" id="(0.8637873754152824,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CX7NkJa6Eeq1-Ze45jZMTg" type="Generalization_Edge" source="_ymR5wJa5Eeq1-Ze45jZMTg" target="_dny24o8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CX70oJa6Eeq1-Ze45jZMTg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CX70oZa6Eeq1-Ze45jZMTg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CX7NkZa6Eeq1-Ze45jZMTg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_CXDD0Ja6Eeq1-Ze45jZMTg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CX7Nkpa6Eeq1-Ze45jZMTg" points="[-160, 500, -643984, -643984]$[700, 420, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CYzXUJa6Eeq1-Ze45jZMTg" id="(0.6106870229007634,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CYzXUZa6Eeq1-Ze45jZMTg" id="(0.0,0.970873786407767)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_yrnO4I8oEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Non-linear_activations_(other)" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_1B_QeI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1B_QeY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1B_Qeo8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1B_Qe48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1B_QfI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1B_QfY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_Qfo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1B_Qf48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1B_QgI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1B_QgY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1B_Qgo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_Qg48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_lbyw4IVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_Qh48oEeq5HrfdV5ATIg" x="-840" y="380"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1B_QiI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1B_QiY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1B_Qio8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1B_Qi48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1B_QjI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1B_QjY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_Qjo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1B_Qj48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1B_QkI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1B_QkY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1B_Qko8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_Qk48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_qeP-IIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_Ql48oEeq5HrfdV5ATIg" x="-600" y="380"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1B_3cI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1B_3cY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1B_3co8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_1B_3c48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_zzHbwIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1B_3dI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1B_3dY8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_09lDwIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1B_3do8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1B_3d48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_1jP8oIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1B_3eI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1B_3eY8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_2sVroIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1B_3eo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1B_3e48oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_3ZGrAIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1B_3fI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1B_3fY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1B_3fo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1B_3f48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_3gI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1B_3gY8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1B_3go8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1B_3g48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1B_3hI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_3hY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_vpbpkIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_3iY8oEeq5HrfdV5ATIg" x="-260" y="180"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1B_3io8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1B_3i48oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1B_3jI8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1B_3jY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1B_3jo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1B_3j48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_3kI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1B_3kY8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1B_3ko8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1B_3k48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1B_3lI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_3lY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_nBjNwIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_3mY8oEeq5HrfdV5ATIg" x="-720" y="380"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1B_3oo8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1B_3o48oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1B_3pI8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1B_3pY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1B_3po8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1B_3p48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_3qI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1B_3qY8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1B_3qo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1B_3q48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1B_3rI8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_3rY8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_HyCdwIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1B_3sY8oEeq5HrfdV5ATIg" x="-640"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1CAeg48oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1CAehI8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1CAehY8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_1CAeho8oEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_f3_xIIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1CAeh48oEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1CAeiI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1CAeiY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1CAeio8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1CAei48oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1CAejI8oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1CAejY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1CAejo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1CAej48oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1CAekI8oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_en-TsIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1CAelI8oEeq5HrfdV5ATIg" x="-740" y="180"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1CBFkI8oEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1CBFkY8oEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1CBFko8oEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1CBFk48oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1CBFlI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1CBFlY8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1CBFlo8oEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_1CBFl48oEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_1CBFmI8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1CBFmY8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1CBFmo8oEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1CBFm48oEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_n_v7YIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1CBFn48oEeq5HrfdV5ATIg" x="-420" y="180"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_yrnO4Y8oEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_yrnO4o8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_yrnO448oEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_-mK0MK8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_1B_QYI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_1B_3cI8oEeq5HrfdV5ATIg" target="_1B_3oo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1B_QYY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1B_QYo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1B_QY48oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1B_QZI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_8okZgIVfEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1B_QZY8oEeq5HrfdV5ATIg" points="[-170, 170, -643984, -643984]$[-510, 90, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1B_QZo8oEeq5HrfdV5ATIg" id="(0.5154639175257731,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1B_QZ48oEeq5HrfdV5ATIg" id="(0.8092485549132948,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1B_QaI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_1B_QeI8oEeq5HrfdV5ATIg" target="_1CAeg48oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1B_QaY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1B_Qao8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1B_Qa48oEeq5HrfdV5ATIg" x="24" y="118"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1B_QbI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#__rKAwIVfEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1B_QbY8oEeq5HrfdV5ATIg" points="[-790, 370, -643984, -643984]$[-710, 273, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1B_Qbo8oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1B_Qb48oEeq5HrfdV5ATIg" id="(0.21621621621621623,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1B_QcI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_1B_QiI8oEeq5HrfdV5ATIg" target="_1CAeg48oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1B_QcY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1B_Qco8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1B_Qc48oEeq5HrfdV5ATIg" x="-1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1B_QdI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_-m_OAIVfEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1B_QdY8oEeq5HrfdV5ATIg" points="[-550, 370, -643984, -643984]$[-610, 273, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1B_Qdo8oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1B_Qd48oEeq5HrfdV5ATIg" id="(0.7567567567567568,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1B_QmI8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_1CBFkI8oEeq5HrfdV5ATIg" target="_1B_3oo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1B_QmY8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1B_Qmo8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1B_Qm48oEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1B_QnI8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_9EA_YIVfEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1B_QnY8oEeq5HrfdV5ATIg" points="[-390, 170, -643984, -643984]$[-530, 90, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1B_Qno8oEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1B_Qn48oEeq5HrfdV5ATIg" id="(0.6936416184971098,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1B_3mo8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_1B_3io8oEeq5HrfdV5ATIg" target="_1CAeg48oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1B_3m48oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1B_3nI8oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1B_3nY8oEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1B_3no8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#__G9ukIVfEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1B_3n48oEeq5HrfdV5ATIg" points="[-670, 370, -643984, -643984]$[-670, 273, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1B_3oI8oEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1B_3oY8oEeq5HrfdV5ATIg" id="(0.43243243243243246,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1CAelY8oEeq5HrfdV5ATIg" type="Generalization_Edge" source="_1CAeg48oEeq5HrfdV5ATIg" target="_1B_3oo8oEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1CAelo8oEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1CAel48oEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1CAemI8oEeq5HrfdV5ATIg" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1CAemY8oEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_98A-YIVfEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1CAemo8oEeq5HrfdV5ATIg" points="[-630, 170, -643984, -643984]$[-610, 90, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1CAem48oEeq5HrfdV5ATIg" id="(0.6486486486486487,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1CAenI8oEeq5HrfdV5ATIg" id="(0.23121387283236994,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_9sdGII8oEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Normalization_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_CqmbII8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqmbIY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqmbIo8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqmbI48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqmbJI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqmbJY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqmbJo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqmbJ48pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqmbKI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqmbKY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqmbKo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqmbK48pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_GDAowIViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqmbL48pEeq5HrfdV5ATIg" x="780" y="-380"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CqnCMY8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqnCMo8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqnCM48pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqnCNI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqnCNY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqnCNo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnCN48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqnCOI8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqnCOY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqnCOo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqnCO48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnCPI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ws_i4IVgEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnCQI8pEeq5HrfdV5ATIg" x="200" y="-1120"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CqnCT48pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqnCUI8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqnCUY8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_CqnCUo8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_iVdAIIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqnCU48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CqnCVI8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ygFbsIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqnCVY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CqnCVo8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_2tKgIIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqnCV48pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqnCWI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqnCWY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqnCWo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnCW48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqnCXI8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqnCXY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqnCXo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqnCX48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnCYI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_fbbfAIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnCZI8pEeq5HrfdV5ATIg" x="940" y="-600"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CqnCZo8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqnCZ48pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqnCaI8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqnCaY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqnCao8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqnCa48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnCbI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqnCbY8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqnCbo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqnCb48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqnCcI8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnCcY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ELXxsIViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnCdY8pEeq5HrfdV5ATIg" x="640" y="-380"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CqnpQI8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqnpQY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqnpQo8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqnpQ48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqnpRI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqnpRY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnpRo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqnpR48pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqnpSI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqnpSY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqnpSo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnpS48pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_OF6vQIViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnpT48pEeq5HrfdV5ATIg" x="1200" y="-380"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CqnpUI8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqnpUY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqnpUo8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_CqnpU48pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_gvtxYIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqnpVI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqnpVY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqnpVo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqnpV48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnpWI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqnpWY8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqnpWo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqnpW48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqnpXI8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnpXY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_bf7SwIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqnpYY8pEeq5HrfdV5ATIg" x="320" y="-760"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CqnpcI8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqnpcY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Cqnpco8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_Cqnpc48pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Qt56oIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqnpdI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CqnpdY8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_RjEoEIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Cqnpdo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Cqnpd48pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_SBd0QIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqnpeI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CqnpeY8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_SVdHQIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Cqnpeo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Cqnpe48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqnpfI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqnpfY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cqnpfo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Cqnpf48pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqnpgI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqnpgY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Cqnpgo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cqnpg48pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ILIBQIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cqnph48pEeq5HrfdV5ATIg" x="520" y="-960"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CqoQUI8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqoQUY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqoQUo8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_CqoQU48pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_4_83kIVgEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqoQVI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqoQVY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqoQVo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqoQV48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqoQWI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqoQWY8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqoQWo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqoQW48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqoQXI8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqoQXY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_2ZKbgIVgEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqoQYY8pEeq5HrfdV5ATIg" x="60" y="-940"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CqoQbI8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqoQbY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqoQbo8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqoQb48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqoQcI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqoQcY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqoQco8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqoQc48pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqoQdI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqoQdY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqoQdo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqoQd48pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_RKVigIViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqoQe48pEeq5HrfdV5ATIg" x="1320" y="-380"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CqoQi48pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqoQjI8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqoQjY8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_CqoQjo8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_mNNU0IVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqoQj48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_CqoQkI8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_njZrsIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqoQkY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqoQko8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqoQk48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqoQlI8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqoQlY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqoQlo8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqoQl48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CqoQmI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqoQmY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqoQmo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_kVSw8IVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqoQno8pEeq5HrfdV5ATIg" x="260" y="-600"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Cqo3Z48pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Cqo3aI8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Cqo3aY8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_Cqo3ao8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_KI-OAIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Cqo3a48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Cqo3bI8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_OsXgsIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Cqo3bY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Cqo3bo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Cqo3b48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Cqo3cI8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cqo3cY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Cqo3co8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Cqo3c48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Cqo3dI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Cqo3dY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cqo3do8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_GstigIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cqo3eo8pEeq5HrfdV5ATIg" y="-760"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Cqo3i48pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Cqo3jI8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Cqo3jY8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_Cqo3jo8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_K2rMEIViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Cqo3j48pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Cqo3kI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Cqo3kY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Cqo3ko8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cqo3k48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Cqo3lI8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Cqo3lY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Cqo3lo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Cqo3l48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cqo3mI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Ikef8IViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cqo3nI8pEeq5HrfdV5ATIg" x="940" y="-380"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Cqpefo8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Cqpef48pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqpegI8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqpegY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Cqpego8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Cqpeg48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqpehI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqpehY8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Cqpeho8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Cqpeh48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqpeiI8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqpeiY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_BDZUIIViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqpejY8pEeq5HrfdV5ATIg" x="500" y="-380"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Cqpelo8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Cqpel48pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqpemI8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CqpemY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Cqpemo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Cqpem48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqpenI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CqpenY8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Cqpeno8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Cqpen48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CqpeoI8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqpeoY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_SiGmsIViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CqpepY8pEeq5HrfdV5ATIg" x="1440" y="-380"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_9sdGIY8oEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_9sdGIo8oEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_9sdGI48oEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_AF9zAK8ZEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_CqnCQY8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_CqmbII8pEeq5HrfdV5ATIg" target="_CqnCT48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqnCQo8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LHoR0I8pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqnCQ48pEeq5HrfdV5ATIg" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CqnCRI8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_ZlFhQIViEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CqnCRY8pEeq5HrfdV5ATIg" points="[810, -390, -643984, -643984]$[970, -475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqnCRo8pEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqnCR48pEeq5HrfdV5ATIg" id="(0.1652892561983471,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CqnCSI8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_CqoQbI8pEeq5HrfdV5ATIg" target="_CqnCT48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqnCSY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LIf0gI8pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqnCSo8pEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CqnCS48pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_a9amIIViEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CqnCTI8pEeq5HrfdV5ATIg" points="[1370, -390, -643984, -643984]$[1130, -475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqnCTY8pEeq5HrfdV5ATIg" id="(0.594059405940594,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqnCTo8pEeq5HrfdV5ATIg" id="(0.8264462809917356,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CqnpYo8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_CqnCZo8pEeq5HrfdV5ATIg" target="_CqnCT48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqnpY48pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LHbdgI8pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqnpZI8pEeq5HrfdV5ATIg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CqnpZY8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_YkOhMIViEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CqnpZo8pEeq5HrfdV5ATIg" points="[670, -390, -643984, -643984]$[970, -475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqnpZ48pEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqnpaI8pEeq5HrfdV5ATIg" id="(0.1652892561983471,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CqnpaY8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_Cqpefo8pEeq5HrfdV5ATIg" target="_CqnCT48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Cqnpao8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LHSTkI8pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Cqnpa48pEeq5HrfdV5ATIg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CqnpbI8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_XsCU8IViEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CqnpbY8pEeq5HrfdV5ATIg" points="[510, -390, -643984, -643984]$[950, -475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Cqnpbo8pEeq5HrfdV5ATIg" id="(0.2,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Cqnpb48pEeq5HrfdV5ATIg" id="(0.08264462809917356,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CqoQZI8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_CqnCT48pEeq5HrfdV5ATIg" target="_CqnpUI8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqoQZY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CqoQZo8pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqoQZ48pEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CqoQaI8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_67JjgIVhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CqoQaY8pEeq5HrfdV5ATIg" points="[590, -610, -643984, -643984]$[450, -667, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqoQao8pEeq5HrfdV5ATIg" id="(0.3305785123966942,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqoQa48pEeq5HrfdV5ATIg" id="(0.8383233532934131,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CqoQfI8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_CqoQUI8pEeq5HrfdV5ATIg" target="_CqnCMY8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqoQfY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LIz9kI8pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqoQfo8pEeq5HrfdV5ATIg" x="1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CqoQf48pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_UxrSEIVhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CqoQgI8pEeq5HrfdV5ATIg" points="[170, -950, -643984, -643984]$[210, -1030, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqoQgY8pEeq5HrfdV5ATIg" id="(0.7741935483870968,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqoQgo8pEeq5HrfdV5ATIg" id="(0.16129032258064516,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CqoQhI8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_Cqo3Z48pEeq5HrfdV5ATIg" target="_CqoQUI8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqoQhY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LJGRcI8pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqoQho8pEeq5HrfdV5ATIg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CqoQh48pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_WYnasIVhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CqoQiI8pEeq5HrfdV5ATIg" points="[10, -770, -643984, -643984]$[70, -847, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqoQiY8pEeq5HrfdV5ATIg" id="(0.08403361344537816,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqoQio8pEeq5HrfdV5ATIg" id="(0.12903225806451613,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Cqo3YI8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_CqnpUI8pEeq5HrfdV5ATIg" target="_CqoQUI8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Cqo3YY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LJw_0I8pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Cqo3Yo8pEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Cqo3Y48pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_sCPOgIVhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Cqo3ZI8pEeq5HrfdV5ATIg" points="[330, -770, -643984, -643984]$[170, -847, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Cqo3ZY8pEeq5HrfdV5ATIg" id="(0.11976047904191617,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Cqo3Zo8pEeq5HrfdV5ATIg" id="(0.7741935483870968,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Cqo3fY8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_Cqo3i48pEeq5HrfdV5ATIg" target="_CqnCT48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Cqo3fo8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LH2UQI8pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Cqo3f48pEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Cqo3gI8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_aLhPIIViEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Cqo3gY8pEeq5HrfdV5ATIg" points="[1050, -390, -643984, -643984]$[1050, -475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Cqo3go8pEeq5HrfdV5ATIg" id="(0.5529953917050692,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Cqo3g48pEeq5HrfdV5ATIg" id="(0.49586776859504134,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Cqo3hI8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_CqoQi48pEeq5HrfdV5ATIg" target="_CqnpUI8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Cqo3hY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LJcPsI8pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Cqo3ho8pEeq5HrfdV5ATIg" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Cqo3h48pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_qWp2cIVhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Cqo3iI8pEeq5HrfdV5ATIg" points="[410, -610, -643984, -643984]$[410, -667, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Cqo3iY8pEeq5HrfdV5ATIg" id="(0.2803738317757009,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Cqo3io8pEeq5HrfdV5ATIg" id="(0.11976047904191617,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CqpecI8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_CqnpQI8pEeq5HrfdV5ATIg" target="_CqnCT48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqpecY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LIEWsI8pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Cqpeco8pEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Cqpec48pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_alo_UIViEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CqpedI8pEeq5HrfdV5ATIg" points="[1230, -390, -643984, -643984]$[1090, -475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqpedY8pEeq5HrfdV5ATIg" id="(0.39603960396039606,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Cqpedo8pEeq5HrfdV5ATIg" id="(0.6611570247933884,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Cqped48pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_Cqpelo8pEeq5HrfdV5ATIg" target="_CqnCT48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CqpeeI8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LHGtYI8pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqpeeY8pEeq5HrfdV5ATIg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Cqpeeo8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_baXn4IViEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Cqpee48pEeq5HrfdV5ATIg" points="[1470, -390, -643984, -643984]$[1130, -475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqpefI8pEeq5HrfdV5ATIg" id="(0.39603960396039606,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqpefY8pEeq5HrfdV5ATIg" id="(0.8264462809917356,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Cqpejo8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_CqnpcI8pEeq5HrfdV5ATIg" target="_CqnCMY8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Cqpej48pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CqpekI8pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CqpekY8pEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Cqpeko8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_UQtTAIVhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Cqpek48pEeq5HrfdV5ATIg" points="[450, -970, -643984, -643984]$[290, -1030, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqpelI8pEeq5HrfdV5ATIg" id="(0.24096385542168675,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_CqpelY8pEeq5HrfdV5ATIg" id="(0.8064516129032258,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_SKxkcI8pEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Recurrent_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_usfGEK8VEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_usfGEa8VEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_usfGEq8VEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_usfGE68VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_AP36kIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usfGFK8VEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_usfGFa8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_usfGFq8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_usfGF68VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usfGGK8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_usfGGa8VEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_usfGGq8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_usfGG68VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_usfGHK8VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usfGHa8VEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_-5MbgIVjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usfGIa8VEeqhVOlV64dXmA" x="460" y="220"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ushiUK8VEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ushiUa8VEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ushiUq8VEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ushiU68VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ushiVK8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ushiVa8VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ushiVq8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ushiV68VEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ushiWK8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ushiWa8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ushiWq8VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ushiW68VEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_CfAEkIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ushiX68VEeqhVOlV64dXmA" x="720" y="220"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ushiYK8VEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ushiYa8VEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ushiYq8VEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_ushiY68VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_495hwIVjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ushiZK8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ushiZa8VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_6la5MIVjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ushiZq8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ushiZ68VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_7-lrkIVjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ushiaK8VEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ushiaa8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ushiaq8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ushia68VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ushibK8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ushiba8VEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ushibq8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ushib68VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ushicK8VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ushica8VEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_tHLn4IViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ushida8VEeqhVOlV64dXmA" x="420" y="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ushidq8VEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ushid68VEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ushieK8VEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_ushiea8VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_iaV_0IVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ushieq8VEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ushie68VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ushifK8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ushifa8VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ushifq8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ushif68VEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ushigK8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ushiga8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ushigq8VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ushig68VEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_f3AgYIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ushih68VEeqhVOlV64dXmA" x="50" y="530"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usiJYK8VEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_usiJYa8VEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_usiJYq8VEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_usiJY68VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Mgv2UIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJZK8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usiJZa8VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_NmsKsIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJZq8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usiJZ68VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_bIpT0IVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJaK8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usiJaa8VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_dH_VYIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJaq8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usiJa68VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_GM1kwKaAEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJbK8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usiJba8VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_M26QEKaAEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJbq8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usiJb68VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_OalCQKaAEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJcK8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usiJca8VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_PFb9IKaAEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJcq8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usiJc68VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_TQ4C0KaAEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJdK8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usiJda8VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_uo4gUKaBEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJdq8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usiJd68VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_zjmG0KaBEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJeK8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usiJea8VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_0y_SIKaBEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJeq8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usiJe68VEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_7QlAoKaBEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJfK8VEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_usiJfa8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_usiJfq8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_usiJf68VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usiJgK8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_usiJga8VEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_usiJgq8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_usiJg68VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_usiJhK8VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usiJha8VEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_w_eSoIVjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usiJia8VEeqhVOlV64dXmA" x="190" y="190"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usjXgK8VEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_usjXga8VEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_usjXgq8VEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_usjXg68VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_usjXhK8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_usjXha8VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usjXhq8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_usjXh68VEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_usjXiK8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_usjXia8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_usjXiq8VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usjXi68VEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_EdBQcIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usjXj68VEeqhVOlV64dXmA" x="860" y="220"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usjXkK8VEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_usjXka8VEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_usjXkq8VEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_usjXk68VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_usjXlK8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_usjXla8VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usjXlq8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_usjXl68VEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_usjXmK8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_usjXma8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_usjXmq8VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usjXm68VEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_kOLU8IVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usjXn68VEeqhVOlV64dXmA" x="290" y="530"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_usjXoK8VEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_usjXoa8VEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_usjXoq8VEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_usjXo68VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_usjXpK8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_usjXpa8VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usjXpq8VEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_usjXp68VEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_usjXqK8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_usjXqa8VEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_usjXqq8VEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usjXq68VEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_l8ROcIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_usjXr68VEeqhVOlV64dXmA" x="430" y="530"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_SKxkcY8pEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_SKxkco8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_SKxkc48pEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_BUBhkK8ZEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_usiJiq8VEeqhVOlV64dXmA" type="Generalization_Edge" source="_usjXoK8VEeqhVOlV64dXmA" target="_usiJYK8VEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_usiJi68VEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_usiJjK8VEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJja8VEeqhVOlV64dXmA" x="-2" y="57"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_usiJjq8VEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_qv_cIIVkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_usiJj68VEeqhVOlV64dXmA" points="[430, 410, -643984, -643984]$[330, 341, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usiJkK8VEeqhVOlV64dXmA" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usiJka8VEeqhVOlV64dXmA" id="(0.8264462809917356,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_usiJkq8VEeqhVOlV64dXmA" type="Generalization_Edge" source="_usjXkK8VEeqhVOlV64dXmA" target="_usiJYK8VEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_usiJk68VEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_usiJlK8VEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiJla8VEeqhVOlV64dXmA" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_usiJlq8VEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_p2PwsIVkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_usiJl68VEeqhVOlV64dXmA" points="[310, 410, -643984, -643984]$[290, 341, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usiJmK8VEeqhVOlV64dXmA" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usiJma8VEeqhVOlV64dXmA" id="(0.5785123966942148,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_usiwcK8VEeqhVOlV64dXmA" type="Generalization_Edge" source="_ushiUK8VEeqhVOlV64dXmA" target="_ushiYK8VEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_usiwca8VEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_usiwcq8VEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiwc68VEeqhVOlV64dXmA" x="-2" y="57"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_usiwdK8VEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_sMLGQIVkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_usiwda8VEeqhVOlV64dXmA" points="[730, 190, -643984, -643984]$[550, 125, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usiwdq8VEeqhVOlV64dXmA" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usiwd68VEeqhVOlV64dXmA" id="(0.8080808080808081,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_usiweK8VEeqhVOlV64dXmA" type="Generalization_Edge" source="_ushidq8VEeqhVOlV64dXmA" target="_usiJYK8VEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_usiwea8VEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_usiweq8VEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usiwe68VEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_usiwfK8VEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_pXFIcIVkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_usiwfa8VEeqhVOlV64dXmA" points="[150, 410, -643984, -643984]$[230, 341, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usiwfq8VEeqhVOlV64dXmA" id="(0.6976744186046512,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usiwf68VEeqhVOlV64dXmA" id="(0.3305785123966942,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_usj-kK8VEeqhVOlV64dXmA" type="Generalization_Edge" source="_usiJYK8VEeqhVOlV64dXmA" target="_ushiYK8VEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_usj-ka8VEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_usj-kq8VEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usj-k68VEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_usj-lK8VEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_tTUUgIVkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_usj-la8VEeqhVOlV64dXmA" points="[270, 190, -643984, -643984]$[450, 125, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usj-lq8VEeqhVOlV64dXmA" id="(0.49586776859504134,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usj-l68VEeqhVOlV64dXmA" id="(0.3048780487804878,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_usj-mK8VEeqhVOlV64dXmA" type="Generalization_Edge" source="_usjXgK8VEeqhVOlV64dXmA" target="_ushiYK8VEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_usj-ma8VEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_usj-mq8VEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usj-m68VEeqhVOlV64dXmA" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_usj-nK8VEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_svnxkIVkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_usj-na8VEeqhVOlV64dXmA" points="[870, 190, -643984, -643984]$[570, 125, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usj-nq8VEeqhVOlV64dXmA" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usj-n68VEeqhVOlV64dXmA" id="(0.9090909090909091,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_usj-oK8VEeqhVOlV64dXmA" type="Generalization_Edge" source="_usfGEK8VEeqhVOlV64dXmA" target="_ushiYK8VEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_usj-oa8VEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_usj-oq8VEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_usj-o68VEeqhVOlV64dXmA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_usj-pK8VEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_rjgjwIVkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_usj-pa8VEeqhVOlV64dXmA" points="[530, 190, -643984, -643984]$[530, 125, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usj-pq8VEeqhVOlV64dXmA" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_usj-p68VEeqhVOlV64dXmA" id="(0.7070707070707071,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_WSK3oI8pEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Transformer_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_efoBQI8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efoBQY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efoBQo8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_efoBQ48pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_MA0HIIVmEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efoBRI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efoBRY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efoBRo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efoBR48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efoBSI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efoBSY8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efoBSo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efoBS48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efoBTI8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efoBTY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Ku6aYIVmEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efoBUY8pEeq5HrfdV5ATIg" x="11030" y="1150"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efooX48pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efooYI8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efooYY8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_efooYo8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_sbCMMIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efooY48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efooZI8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_tmddgIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efooZY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efooZo8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_uFbRcIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efooZ48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efooaI8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_v6pGoIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efooaY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efooao8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_wuIZEIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efooa48pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efoobI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efoobY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efoobo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efoob48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efoocI8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efoocY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efooco8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efooc48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efoodI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_gsKxUIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efooeI8pEeq5HrfdV5ATIg" x="10350" y="890"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efpPYI8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efpPYY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efpPYo8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efpPY48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efpPZI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efpPZY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efpPZo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efpPZ48pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efpPaI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efpPaY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efpPao8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efpPa48pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_-aqagIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efpPb48pEeq5HrfdV5ATIg" x="10370" y="1150"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efpPeI8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efpPeY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efpPeo8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efpPe48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efpPfI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efpPfY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efpPfo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efpPf48pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efpPgI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efpPgY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efpPgo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efpPg48pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_zItakIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efpPh48pEeq5HrfdV5ATIg" x="10669" y="694"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efpPiI8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efpPiY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efpPio8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_efpPi48pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_mZVvgIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efpPjI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efpPjY8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_oByUAIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efpPjo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efpPj48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efpPkI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efpPkY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efpPko8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efpPk48pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efpPlI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efpPlY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efpPlo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efpPl48pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_kfJ6wIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efpPm48pEeq5HrfdV5ATIg" x="10850" y="890"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efpPpY8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efpPpo8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efpPp48pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efpPqI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efpPqY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efpPqo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efpPq48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efpPrI8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efpPrY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efpPro8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efpPr48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efpPsI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_AIIo8IVmEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efp2cI8pEeq5HrfdV5ATIg" x="10550" y="1150"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efp2f48pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efp2gI8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efp2gY8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_efp2go8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_2FyaQIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efp2g48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efp2hI8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_4EeUgIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efp2hY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efp2ho8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_606b0IVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efp2h48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efp2iI8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_8LVcMIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efp2iY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efp2io8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efp2i48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efp2jI8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efp2jY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efp2jo8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efp2j48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efp2kI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efp2kY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efp2ko8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_0gXUkIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efp2lo8pEeq5HrfdV5ATIg" x="10090" y="1150"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_efp2l48pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efp2mI8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efp2mY8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_efp2mo8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Nai6MIVmEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efp2m48pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efp2nI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efp2nY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efp2no8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efp2n48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_efp2oI8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_efp2oY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_efp2oo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_efp2o48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efp2pI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_JjphIIVmEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_efp2qI8pEeq5HrfdV5ATIg" x="10750" y="1150"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_WSK3oY8pEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_WSK3oo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_WSK3o48pEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_DJMTcK8ZEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_efooUI8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_efpPYI8pEeq5HrfdV5ATIg" target="_efooX48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efooUY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efooUo8pEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_efooU48pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_GrExgIVmEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_efooVI8pEeq5HrfdV5ATIg" points="[10420, 1140, -643984, -643984]$[10420, 1047, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efooVY8pEeq5HrfdV5ATIg" id="(0.40540540540540543,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efooVo8pEeq5HrfdV5ATIg" id="(0.3524229074889868,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_efooV48pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_efp2f48pEeq5HrfdV5ATIg" target="_efooX48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efooWI8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efooWY8pEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_efooWo8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_GMzhIIVmEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_efooW48pEeq5HrfdV5ATIg" points="[10220, 1140, -643984, -643984]$[10380, 1047, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efooXI8pEeq5HrfdV5ATIg" id="(0.5645161290322581,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efooXY8pEeq5HrfdV5ATIg" id="(0.1762114537444934,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_efooeY8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_efooX48pEeq5HrfdV5ATIg" target="_efpPeI8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efooeo8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_efooe48pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efoofI8pEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_efoofY8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_SF09kIVmEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_efoofo8pEeq5HrfdV5ATIg" points="[10500, 880, -643984, -643984]$[10700, 800, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efoof48pEeq5HrfdV5ATIg" id="(0.7048458149779736,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efoogI8pEeq5HrfdV5ATIg" id="(0.36283185840707965,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_efpPcY8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_efp2l48pEeq5HrfdV5ATIg" target="_efpPiI8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efpPco8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efpPc48pEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_efpPdI8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_P0nv8IVmEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_efpPdY8pEeq5HrfdV5ATIg" points="[10860, 1140, -643984, -643984]$[10920, 999, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efpPdo8pEeq5HrfdV5ATIg" id="(0.5714285714285714,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efpPd48pEeq5HrfdV5ATIg" id="(0.40609137055837563,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_efpPnI8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_efpPiI8pEeq5HrfdV5ATIg" target="_efpPeI8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efpPnY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_efpPno8pEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efpPn48pEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_efpPoI8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_RehtAIVmEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_efpPoY8pEeq5HrfdV5ATIg" points="[10940, 880, -643984, -643984]$[10740, 800, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efpPoo8pEeq5HrfdV5ATIg" id="(0.5076142131979695,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efpPo48pEeq5HrfdV5ATIg" id="(0.7168141592920354,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_efp2cY8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_efpPpY8pEeq5HrfdV5ATIg" target="_efooX48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efp2co8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efp2c48pEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_efp2dI8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_HJqyAIVmEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_efp2dY8pEeq5HrfdV5ATIg" points="[10580, 1140, -643984, -643984]$[10500, 1047, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efp2do8pEeq5HrfdV5ATIg" id="(0.272108843537415,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efp2d48pEeq5HrfdV5ATIg" id="(0.7048458149779736,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_efp2eI8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_efoBQI8pEeq5HrfdV5ATIg" target="_efpPiI8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_efp2eY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_efp2eo8pEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_efp2e48pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_QhQMcIVmEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_efp2fI8pEeq5HrfdV5ATIg" points="[11120, 1140, -643984, -643984]$[10980, 999, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efp2fY8pEeq5HrfdV5ATIg" id="(0.47619047619047616,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_efp2fo8pEeq5HrfdV5ATIg" id="(0.7106598984771574,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_hjW4AI8pEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Linear_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_jxs-4I8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jxs-4Y8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jxs-4o8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jxs-448pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jxs-5I8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jxs-5Y8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxs-5o8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jxs-548pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jxs-6I8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jxs-6Y8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jxs-6o8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxs-648pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_c_eM8IhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxs-748pEeq5HrfdV5ATIg" x="11970" y="930"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jxuNB48pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jxuNCI8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jxuNCY8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_jxuNCo8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_snPzEIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jxuNC48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_1xPYAKZeEeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_1w4LoKZeEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1xPYAaZeEeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eKSGEKZkEeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_eJ6SoKZkEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_eKSGEaZkEeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f9-RQKZkEeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_f9qvQKZkEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f9-RQaZkEeqIr7xwFiWQGQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jxuNDI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jxuNDY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jxuNDo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxuND48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jxuNEI8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jxuNEY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jxuNEo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jxuNE48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxuNFI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ozz9sIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxuNGI8pEeq5HrfdV5ATIg" x="11370" y="1210"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jxu0J48pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jxu0KI8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jxu0KY8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_jxu0Ko8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_lYOnoIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jxvbII8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jxvbIY8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_m2y3YIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jxvbIo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jxvbI48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jxvbJI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jxvbJY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxvbJo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jxvbJ48pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jxvbKI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jxvbKY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jxvbKo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxvbK48pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_hGyAkIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxvbL48pEeq5HrfdV5ATIg" x="11550" y="930"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jxvbMI8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jxvbMY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jxvbMo8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jxvbM48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jxvbNI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jxvbNY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxvbNo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jxvbN48pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jxvbOI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jxvbOY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jxvbOo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxvbO48pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ThvuQIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxvbP48pEeq5HrfdV5ATIg" x="11710" y="690"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jxvbQI8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jxvbQY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jxvbQo8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_jxvbQ48pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_u5YNwIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jxvbRI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_jxvbRY8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_wboqsIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jxvbRo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jxvbR48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jxvbSI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jxvbSY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxvbSo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_jxvbS48pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_jxvbTI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_jxvbTY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_jxvbTo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxvbT48pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_pJFqIIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jxvbU48pEeq5HrfdV5ATIg" x="11750" y="1210"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_hjW4AY8pEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_hjW4Ao8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_hjW4A48pEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_EIEWgK8ZEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_jxuNAI8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_jxvbQI8pEeq5HrfdV5ATIg" target="_jxu0J48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jxuNAY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jxuNAo8pEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_jxuNA48pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_4ugf0IhhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jxuNBI8pEeq5HrfdV5ATIg" points="[11820, 1200, -643984, -643984]$[11700, 1039, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jxuNBY8pEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jxuNBo8pEeq5HrfdV5ATIg" id="(0.7920792079207921,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_jxu0Eo8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_jxs-4I8pEeq5HrfdV5ATIg" target="_jxvbMI8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jxu0E48pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jxu0FI8pEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_jxu0FY8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_5QYd0IhhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jxu0Fo8pEeq5HrfdV5ATIg" points="[12000, 920, -643984, -643984]$[11780, 780, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jxu0F48pEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jxu0GI8pEeq5HrfdV5ATIg" id="(0.8,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_jxu0GY8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_jxu0J48pEeq5HrfdV5ATIg" target="_jxvbMI8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jxu0Go8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jxu0G48pEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_jxu0HI8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_58n4wIhhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jxu0HY8pEeq5HrfdV5ATIg" points="[11660, 920, -643984, -643984]$[11720, 780, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jxu0Ho8pEeq5HrfdV5ATIg" id="(0.594059405940594,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jxu0H48pEeq5HrfdV5ATIg" id="(0.2,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_jxu0II8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_jxuNB48pEeq5HrfdV5ATIg" target="_jxu0J48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_jxu0IY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_jxu0Io8pEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_jxu0I48pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_4MFvQIhhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jxu0JI8pEeq5HrfdV5ATIg" points="[11520, 1200, -643984, -643984]$[11600, 1039, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jxu0JY8pEeq5HrfdV5ATIg" id="(0.8247422680412371,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jxu0Jo8pEeq5HrfdV5ATIg" id="(0.297029702970297,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_mvx5kI8pEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Dropout_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_ouSNoY8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ouSNoo8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ouSNo48pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ouSNpI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ouSNpY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ouSNpo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouSNp48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ouSNqI8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ouSNqY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ouSNqo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ouSNq48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouSNrI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_O7XjkIhiEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouSNsI8pEeq5HrfdV5ATIg" x="-380" y="280"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ouSNuY8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ouSNuo8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ouSNu48pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ouSNvI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ouSNvY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ouSNvo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouSNv48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ouSNwI8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ouSNwY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ouSNwo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ouSNw48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouSNxI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_QF418IhiEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouSNyI8pEeq5HrfdV5ATIg" x="40" y="280"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ouS0t48pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ouS0uI8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ouS0uY8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ouS0uo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ouS0u48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ouS0vI8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouS0vY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ouS0vo8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ouS0v48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ouS0wI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ouS0wY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouS0wo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Proi4IhiEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouS0xo8pEeq5HrfdV5ATIg" x="-100" y="280"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ouS0x48pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ouS0yI8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ouS0yY8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_ouS0yo8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_L5uXgIhiEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ouS0y48pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ouS0zI8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Mxr6QIhiEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ouS0zY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_k8lLIKcmEeqkzM30xo7jnw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_k7wEsKcmEeqkzM30xo7jnw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_k8lLIacmEeqkzM30xo7jnw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_m_34kKcmEeqkzM30xo7jnw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_m_lksKcmEeqkzM30xo7jnw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_m_34kacmEeqkzM30xo7jnw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ouS0zo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ouS0z48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ouS00I8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouS00Y8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ouS00o8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ouS0048pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ouS01I8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ouS01Y8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouS01o8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_JJr40IhiEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouS02o8pEeq5HrfdV5ATIg" x="-220" y="20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ouS0248pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ouS03I8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ouS03Y8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ouS03o8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ouS0348pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ouS04I8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouS04Y8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ouS04o8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ouS0448pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ouS05I8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ouS05Y8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouS05o8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_PMP4MIhiEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ouS06o8pEeq5HrfdV5ATIg" x="-240" y="280"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_mvx5kY8pEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_mvx5ko8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_mvx5k48pEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_tG8kQK8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ouSNsY8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_ouSNoY8pEeq5HrfdV5ATIg" target="_ouS0x48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ouSNso8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_FDJJYI81Eeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ouSNs48pEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ouSNtI8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_rp92AIhiEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ouSNtY8pEeq5HrfdV5ATIg" points="[-350, 270, -643984, -643984]$[-210, 129, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ouSNto8pEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ouSNt48pEeq5HrfdV5ATIg" id="(0.11428571428571428,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ouS0sI8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_ouS0248pEeq5HrfdV5ATIg" target="_ouS0x48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ouS0sY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_FDFfAI81Eeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ouS0so8pEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ouS0s48pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_sKSU0IhiEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ouS0tI8pEeq5HrfdV5ATIg" points="[-190, 270, -643984, -643984]$[-190, 129, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ouS0tY8pEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ouS0to8pEeq5HrfdV5ATIg" id="(0.22857142857142856,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ouS0648pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_ouS0t48pEeq5HrfdV5ATIg" target="_ouS0x48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ouS07I8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_FDMzwI81Eeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ouS07Y8pEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ouS07o8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_srztgIhiEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ouS0748pEeq5HrfdV5ATIg" points="[-50, 270, -643984, -643984]$[-90, 129, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ouS08I8pEeq5HrfdV5ATIg" id="(0.2,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ouS08Y8pEeq5HrfdV5ATIg" id="(0.8,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ouS08o8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_ouSNuY8pEeq5HrfdV5ATIg" target="_ouS0x48pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ouS0848pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_FDQeII81Eeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ouS09I8pEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ouS09Y8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_t3zmkIhiEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ouS09o8pEeq5HrfdV5ATIg" points="[70, 270, -643984, -643984]$[-70, 129, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ouS0948pEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ouS0-I8pEeq5HrfdV5ATIg" id="(0.9142857142857143,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_rsBxII8pEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Sparse_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_y6OdMI8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y6OdMY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y6OdMo8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_y6OdM48pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ytrT4IhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y6OdNI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y6OdNY8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_z2sxcIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y6OdNo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y6OdN48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y6OdOI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y6OdOY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y6OdOo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y6OdO48pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y6OdPI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y6OdPY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y6OdPo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y6OdP48pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_kIoWEIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y6OdQ48pEeq5HrfdV5ATIg" x="13050" y="950"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y6OdRI8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y6OdRY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y6OdRo8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_y6OdR48pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_w7GjAIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y6OdSI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y6OdSY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y6OdSo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y6OdS48pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y6OdTI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y6OdTY8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y6OdTo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y6OdT48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y6OdUI8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y6OdUY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_HDvqkIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y6OdVY8pEeq5HrfdV5ATIg" x="12810" y="950"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y6OdVo8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y6OdV48pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y6OdWI8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_y6OdWY8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_nWwe8IhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y6OdWo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y6OdW48pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_p2G2QIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y6OdXI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y6OdXY8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_sIOC0IhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y6OdXo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y6OdX48pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_tKafoIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y6OdYI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y6OdYY8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_vicuAIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y6OdYo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_UjqNsJm5Eeq0jfmjFzaebA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_UjbkMJm5Eeq0jfmjFzaebA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_UjqNsZm5Eeq0jfmjFzaebA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y6OdY48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y6OdZI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y6OdZY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y6OdZo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y6OdZ48pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y6OdaI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y6OdaY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y6Odao8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y6Oda48pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_AdGtwIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y6Odb48pEeq5HrfdV5ATIg" x="12930" y="690"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_rsBxIY8pEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_rsBxIo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_rsBxI48pEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_ulEvIK8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_y6N2II8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_y6OdRI8pEeq5HrfdV5ATIg" target="_y6OdVo8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y6N2IY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y6N2Io8pEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_y6N2I48pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_7zj6UIhjEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_y6N2JI8pEeq5HrfdV5ATIg" points="[12920, 940, -643984, -643984]$[12980, 847, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y6N2JY8pEeq5HrfdV5ATIg" id="(0.594059405940594,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y6N2Jo8pEeq5HrfdV5ATIg" id="(0.2575107296137339,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_y6PEQI8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_y6OdMI8pEeq5HrfdV5ATIg" target="_y6OdVo8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y6PEQY8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y6PEQo8pEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_y6PEQ48pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_8S-aMIhjEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_y6PERI8pEeq5HrfdV5ATIg" points="[13160, 940, -643984, -643984]$[13080, 847, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y6PERY8pEeq5HrfdV5ATIg" id="(0.5128205128205128,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y6PERo8pEeq5HrfdV5ATIg" id="(0.6866952789699571,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_uj59MI8pEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Distance_functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_128F_o8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_128F_48pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_128GAI8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_128GAY8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_D1Gu4IhkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_128GAo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_128GA48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_128GBI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_128GBY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_128GBo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_128GB48pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_128GCI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_128GCY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_128GCo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_128GC48pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_9-4iYIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_128GD48pEeq5HrfdV5ATIg" x="13550" y="690"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_128GEI8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_128GEY8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_128GEo8pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_128GE48pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Km4ksIhkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_128GFI8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_128GFY8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_LieqQIhkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_128GFo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_128GF48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_128GGI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_128GGY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_128GGo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_128GG48pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_128GHI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_128GHY8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_128GHo8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_128GH48pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_F-SB4IhkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_128GI48pEeq5HrfdV5ATIg" x="13690" y="950"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_128tAY8pEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_128tAo8pEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_128tA48pEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_128tBI8pEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_JmnagIhkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_128tBY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_128tBo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_128tB48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_128tCI8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_128tCY8pEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_128tCo8pEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_128tC48pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_128tDI8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_128tDY8pEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_128tDo8pEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Ff9uMIhkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_128tEo8pEeq5HrfdV5ATIg" x="13450" y="950"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_uj59MY8pEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_uj59Mo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_uj59M48pEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_vzoM8K8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_128F8I8pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_128GEI8pEeq5HrfdV5ATIg" target="_128F_o8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_128F8Y8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_128F8o8pEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_128F848pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_RFcjkIhkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_128F9I8pEeq5HrfdV5ATIg" points="[13720, 940, -643984, -643984]$[13660, 783, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_128F9Y8pEeq5HrfdV5ATIg" id="(0.2185792349726776,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_128F9o8pEeq5HrfdV5ATIg" id="(0.7741935483870968,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_128F948pEeq5HrfdV5ATIg" type="Generalization_Edge" source="_128tAY8pEeq5HrfdV5ATIg" target="_128F_o8pEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_128F-I8pEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_128F-Y8pEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_128F-o8pEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_QjaNgIhkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_128F-48pEeq5HrfdV5ATIg" points="[13540, 940, -643984, -643984]$[13580, 783, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_128F_I8pEeq5HrfdV5ATIg" id="(0.6329113924050633,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_128F_Y8pEeq5HrfdV5ATIg" id="(0.25806451612903225,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_5sQxsI8pEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Loss_functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_LajYYI8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LajYYY8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LajYYo8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LajYY48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LajYZI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LajYZY8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LajYZo8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LajYZ48qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LajYaI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LajYaY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LajYao8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LajYa48qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_oavnUIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LajYb48qEeq5HrfdV5ATIg" x="2800" y="780"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Laj_eo8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Laj_e48qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Laj_fI8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_Laj_fY8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_4J95QIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Laj_fo8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Laj_f48qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_5TNZQIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Laj_gI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Laj_gY8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_6KGlAIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Laj_go8qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Laj_g48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Laj_hI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Laj_hY8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Laj_ho8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Laj_h48qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Laj_iI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Laj_iY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Laj_io8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Laj_i48qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_0iSA4IhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Laj_j48qEeq5HrfdV5ATIg" x="2160" y="560"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Laj_kY8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Laj_ko8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Laj_k48qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_Laj_lI8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Hr6rkIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Laj_lY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Laj_lo8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_KRcjYIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Laj_l48qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Laj_mI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Laj_mY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Laj_mo8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Laj_m48qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Laj_nI8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Laj_nY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Laj_no8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Laj_n48qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Laj_oI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_F2VqAIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Laj_pI8qEeq5HrfdV5ATIg" x="1100" y="60"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Laj_vY8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Laj_vo8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Laj_v48qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Laj_wI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Laj_wY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Laj_wo8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Laj_w48qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Laj_xI8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Laj_xY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Laj_xo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Laj_x48qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Laj_yI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_sYrucIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Laj_zI8qEeq5HrfdV5ATIg" x="960" y="320"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LakmiI8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LakmiY8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lakmio8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_Lakmi48qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_fsyDkIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LakmjI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LakmjY8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_g54v4IhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lakmjo8qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lakmj48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LakmkI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LakmkY8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lakmko8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lakmk48qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LakmlI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LakmlY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lakmlo8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lakml48qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_dgekEIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lakmm48qEeq5HrfdV5ATIg" x="20" y="60"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LakmpI8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LakmpY8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lakmpo8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lakmp48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LakmqI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LakmqY8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lakmqo8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lakmq48qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LakmrI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LakmrY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lakmro8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lakmr48qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_UW5JYIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lakms48qEeq5HrfdV5ATIg" x="660" y="320"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LakmtI8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LakmtY8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lakmto8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_Lakmt48qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_qCV-oIhnEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LakmuI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LakmuY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lakmuo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lakmu48qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LakmvI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LakmvY8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lakmvo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lakmv48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LakmwI8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LakmwY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_oNze4IhnEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LakmxY8qEeq5HrfdV5ATIg" x="500" y="-180"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Lakmxo8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lakmx48qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LakmyI8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_LakmyY8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_e4iGsIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lakmyo8qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lakmy48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LakmzI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LakmzY8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lakmzo8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lakmz48qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lakm0I8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lakm0Y8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lakm0o8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lakm048qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_cSDMoIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lakm148qEeq5HrfdV5ATIg" x="2500" y="320"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LalNkI8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LalNkY8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LalNko8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LalNk48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LalNlI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LalNlY8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalNlo8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LalNl48qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LalNmI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LalNmY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LalNmo8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalNm48qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_yCiS4IhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalNn48qEeq5HrfdV5ATIg" x="1100" y="320"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LalNoI8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LalNoY8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LalNoo8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_LalNo48qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_2xgRgIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LalNpI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LalNpY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LalNpo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LalNp48qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalNqI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LalNqY8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LalNqo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LalNq48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LalNrI8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalNrY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_1ml9kIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalNsY8qEeq5HrfdV5ATIg" x="2400" y="560"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LalNuo8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LalNu48qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LalNvI8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LalNvY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LalNvo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LalNv48qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalNwI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LalNwY8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LalNwo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LalNw48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LalNxI8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalNxY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_v673wIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalNyY8qEeq5HrfdV5ATIg" x="1580" y="520"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LalN248qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LalN3I8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LalN3Y8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_LalN3o8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_LlDOYIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LalN348qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LalN4I8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LalN4Y8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LalN4o8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalN448qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LalN5I8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LalN5Y8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LalN5o8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LalN548qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalN6I8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_J1LMMIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalN7I8qEeq5HrfdV5ATIg" x="1920" y="760"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LalN7Y8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LalN7o8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LalN748qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LalN8I8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LalN8Y8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LalN8o8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalN848qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LalN9I8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LalN9Y8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LalN9o8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LalN948qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalN-I8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_XkZnMIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LalN_I8qEeq5HrfdV5ATIg" x="800" y="320"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Lal0oI8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lal0oY8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lal0oo8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_Lal0o48qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_dvGZcIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lal0pI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lal0pY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lal0po8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lal0p48qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal0qI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lal0qY8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lal0qo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lal0q48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lal0rI8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal0rY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_TXEOoIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal0sY8qEeq5HrfdV5ATIg" x="1520" y="320"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Lal0u48qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lal0vI8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lal0vY8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_Lal0vo8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_NFUHQIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lal0v48qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lal0wI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lal0wY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lal0wo8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal0w48qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lal0xI8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lal0xY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lal0xo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lal0x48qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal0yI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_JaQx0IhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal0zI8qEeq5HrfdV5ATIg" x="1720" y="760"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Lal01Y8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lal01o8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lal0148qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lal02I8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lal02Y8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lal02o8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal0248qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lal03I8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lal03Y8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lal03o8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lal0348qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal04I8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_6OX2cIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal05I8qEeq5HrfdV5ATIg" x="2640" y="560"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Lal07Y8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lal07o8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lal0748qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_Lal08I8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_kXdYEIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lal08Y8qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lal08o8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lal0848qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lal09I8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal09Y8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lal09o8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lal0948qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lal0-I8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lal0-Y8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal0-o8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_hqxIUIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal0_o8qEeq5HrfdV5ATIg" x="2800" y="560"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Lal0_48qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lal1AI8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lal1AY8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lal1Ao8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lal1A48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lal1BI8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal1BY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lal1Bo8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lal1B48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lal1CI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lal1CY8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal1Co8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_pWuucIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal1Do8qEeq5HrfdV5ATIg" x="2940" y="780"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Lal1F48qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lal1GI8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lal1GY8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_Lal1Go8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_HB3XEIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lal1G48qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lal1HI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lal1HY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lal1Ho8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal1H48qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lal1II8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lal1IY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lal1Io8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lal1I48qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal1JI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_DrSc0IhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lal1KI8qEeq5HrfdV5ATIg" x="1800" y="520"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LambyI8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LambyY8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lambyo8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lamby48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LambzI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LambzY8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lambzo8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Lambz48qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Lamb0I8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Lamb0Y8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Lamb0o8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lamb048qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_o24mMIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lamb148qEeq5HrfdV5ATIg" x="1280" y="520"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_LanCwI8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LanCwY8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LanCwo8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LanCw48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LanCxI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LanCxY8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LanCxo8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_LanCx48qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_LanCyI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_LanCyY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_LanCyo8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LanCy48qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_uaWOwIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LanCz48qEeq5HrfdV5ATIg" x="1440" y="520"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hxfEcJm6Eeq0jfmjFzaebA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_hxfrgJm6Eeq0jfmjFzaebA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hxfrgZm6Eeq0jfmjFzaebA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hxfrgpm6Eeq0jfmjFzaebA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hxfrg5m6Eeq0jfmjFzaebA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hxfrhJm6Eeq0jfmjFzaebA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hxfrhZm6Eeq0jfmjFzaebA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hxfrhpm6Eeq0jfmjFzaebA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hxfrh5m6Eeq0jfmjFzaebA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hxfriJm6Eeq0jfmjFzaebA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hxfriZm6Eeq0jfmjFzaebA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hxfripm6Eeq0jfmjFzaebA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_hxbaEJm6Eeq0jfmjFzaebA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hxfEcZm6Eeq0jfmjFzaebA" x="520" y="320"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w1FmgJm6Eeq0jfmjFzaebA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w1GNkJm6Eeq0jfmjFzaebA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w1GNkZm6Eeq0jfmjFzaebA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w1GNkpm6Eeq0jfmjFzaebA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w1GNk5m6Eeq0jfmjFzaebA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w1GNlJm6Eeq0jfmjFzaebA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w1GNlZm6Eeq0jfmjFzaebA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w1GNlpm6Eeq0jfmjFzaebA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w1GNl5m6Eeq0jfmjFzaebA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w1GNmJm6Eeq0jfmjFzaebA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w1GNmZm6Eeq0jfmjFzaebA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w1GNmpm6Eeq0jfmjFzaebA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_w1CjMJm6Eeq0jfmjFzaebA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w1FmgZm6Eeq0jfmjFzaebA" x="380" y="320"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_DSsxUJm7Eeq0jfmjFzaebA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DStYYJm7Eeq0jfmjFzaebA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DStYYZm7Eeq0jfmjFzaebA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DStYYpm7Eeq0jfmjFzaebA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DStYY5m7Eeq0jfmjFzaebA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DStYZJm7Eeq0jfmjFzaebA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DStYZZm7Eeq0jfmjFzaebA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_DStYZpm7Eeq0jfmjFzaebA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_DStYZ5m7Eeq0jfmjFzaebA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_DStYaJm7Eeq0jfmjFzaebA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_DStYaZm7Eeq0jfmjFzaebA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DStYapm7Eeq0jfmjFzaebA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_DSn40Jm7Eeq0jfmjFzaebA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DSsxUZm7Eeq0jfmjFzaebA" x="1980" y="560"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_5sQxsY8pEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_5sQxso8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_5sQxs48pEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_xUzEwK8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_LajYcI8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_LalN7Y8qEeq5HrfdV5ATIg" target="_Laj_kY8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LajYcY8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LajYco8qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LajYc48qEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LajYdI8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_PLRRsIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LajYdY8qEeq5HrfdV5ATIg" points="[595, 315, -643984, -643984]$[915, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LajYdo8qEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LajYd48qEeq5HrfdV5ATIg" id="(0.297029702970297,0.9971988795518194)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Laj_cY8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_LalNuo8qEeq5HrfdV5ATIg" target="_Lal0oI8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Laj_co8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Laj_c48qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Laj_dI8qEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Laj_dY8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_0GpqQIhpEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Laj_do8qEeq5HrfdV5ATIg" points="[1355, 515, -643984, -643984]$[1215, 418, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Laj_d48qEeq5HrfdV5ATIg" id="(0.15503875968992248,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Laj_eI8qEeq5HrfdV5ATIg" id="(0.34285714285714286,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Laj_pY8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_LalNkI8qEeq5HrfdV5ATIg" target="_Laj_kY8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Laj_po8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Laj_p48qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Laj_qI8qEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Laj_qY8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_OBMEMIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Laj_qo8qEeq5HrfdV5ATIg" points="[935, 315, -643984, -643984]$[955, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Laj_q48qEeq5HrfdV5ATIg" id="(0.6153846153846154,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Laj_rI8qEeq5HrfdV5ATIg" id="(0.49504950495049505,0.9971988795518194)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Laj_rY8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_Lal1F48qEeq5HrfdV5ATIg" target="_Lal0oI8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Laj_ro8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Laj_r48qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Laj_sI8qEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Laj_sY8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_UcGuoIhqEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Laj_so8qEeq5HrfdV5ATIg" points="[1575, 515, -643984, -643984]$[1415, 418, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Laj_s48qEeq5HrfdV5ATIg" id="(0.1388888888888889,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Laj_tI8qEeq5HrfdV5ATIg" id="(0.8,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Laj_tY8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_LajYYI8qEeq5HrfdV5ATIg" target="_Lal07Y8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Laj_to8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Laj_t48qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Laj_uI8qEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Laj_uY8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_rT8pEIhqEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Laj_uo8qEeq5HrfdV5ATIg" points="[2490, 775, -643984, -643984]$[2490, 658, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Laj_u48qEeq5HrfdV5ATIg" id="(0.5660377358490566,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Laj_vI8qEeq5HrfdV5ATIg" id="(0.2926829268292683,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Laj_zY8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_Laj_eo8qEeq5HrfdV5ATIg" target="_Lakmxo8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Laj_zo8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Laj_z48qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Laj_0I8qEeq5HrfdV5ATIg" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Laj_0Y8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_H58ZIIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Laj_0o8qEeq5HrfdV5ATIg" points="[2055, 555, -643984, -643984]$[2275, 417, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Laj_048qEeq5HrfdV5ATIg" id="(0.7486631016042781,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Laj_1I8qEeq5HrfdV5ATIg" id="(0.11560693641618497,0.9967637540453059)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LakmgI8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_Laj_vY8qEeq5HrfdV5ATIg" target="_Laj_kY8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LakmgY8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Lakmgo8qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lakmg48qEeq5HrfdV5ATIg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LakmhI8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_Ojop8IhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LakmhY8qEeq5HrfdV5ATIg" points="[795, 315, -643984, -643984]$[935, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lakmho8qEeq5HrfdV5ATIg" id="(0.8,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lakmh48qEeq5HrfdV5ATIg" id="(0.39603960396039606,0.9971988795518194)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LakmnI8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_Lal01Y8qEeq5HrfdV5ATIg" target="_Lakmxo8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LakmnY8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Lakmno8qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lakmn48qEeq5HrfdV5ATIg" x="-1" y="57"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LakmoI8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_7bTjoIhpEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LakmoY8qEeq5HrfdV5ATIg" points="[2430, 575, -643984, -643984]$[2310, 418, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lakmoo8qEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lakmo48qEeq5HrfdV5ATIg" id="(0.8092485549132948,0.9805825242718447)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Lakm2I8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_Lakmxo8qEeq5HrfdV5ATIg" target="_Laj_kY8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lakm2Y8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Lakm2o8qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lakm248qEeq5HrfdV5ATIg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Lakm3I8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_L6mLIIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Lakm3Y8qEeq5HrfdV5ATIg" points="[2275, 315, -643984, -643984]$[1035, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lakm3o8qEeq5HrfdV5ATIg" id="(0.11560693641618497,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lakm348qEeq5HrfdV5ATIg" id="(0.8910891089108911,0.9971988795518194)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LalNso8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_Lal0oI8qEeq5HrfdV5ATIg" target="_Laj_kY8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LalNs48qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LalNtI8qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LalNtY8qEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LalNto8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_KmOZMIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LalNt48qEeq5HrfdV5ATIg" points="[1315, 315, -643984, -643984]$[1015, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LalNuI8qEeq5HrfdV5ATIg" id="(0.22857142857142856,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LalNuY8qEeq5HrfdV5ATIg" id="(0.7920792079207921,0.9971988795518194)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LalNyo8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_LakmiI8qEeq5HrfdV5ATIg" target="_LakmtI8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LalNy48qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8aQoAI80Eeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LalNzI8qEeq5HrfdV5ATIg" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LalNzY8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_YDZI8IhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LalNzo8qEeq5HrfdV5ATIg" points="[130, 50, -643984, -643984]$[550, -88, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LalNz48qEeq5HrfdV5ATIg" id="(0.5970149253731343,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LalN0I8qEeq5HrfdV5ATIg" id="(0.3191489361702128,0.996763754045307)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LalN0Y8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_Lal0u48qEeq5HrfdV5ATIg" target="_Lal1F48qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LalN0o8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LalN048qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LalN1I8qEeq5HrfdV5ATIg" x="1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LalN1Y8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_THXJQIhqEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LalN1o8qEeq5HrfdV5ATIg" points="[1535, 755, -643984, -643984]$[1595, 618, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LalN148qEeq5HrfdV5ATIg" id="(0.3468208092485549,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LalN2I8qEeq5HrfdV5ATIg" id="(0.2777777777777778,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LalN_Y8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_LambyI8qEeq5HrfdV5ATIg" target="_Lal0oI8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LalN_o8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LalN_48qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LalOAI8qEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LalOAY8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_sErX4IhpEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LalOAo8qEeq5HrfdV5ATIg" points="[1155, 515, -643984, -643984]$[1175, 418, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LalOA48qEeq5HrfdV5ATIg" id="(0.45112781954887216,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LalOBI8qEeq5HrfdV5ATIg" id="(0.11428571428571428,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Lal0s48qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_LalNoI8qEeq5HrfdV5ATIg" target="_Lakmxo8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lal0tI8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Lal0tY8qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lal0to8qEeq5HrfdV5ATIg" x="1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Lal0t48qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_HRZLYIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Lal0uI8qEeq5HrfdV5ATIg" points="[2275, 555, -643984, -643984]$[2335, 417, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lal0uY8qEeq5HrfdV5ATIg" id="(0.6091370558375635,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lal0uo8qEeq5HrfdV5ATIg" id="(0.4624277456647399,0.9967637540453059)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Lal0zY8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_Lal0_48qEeq5HrfdV5ATIg" target="_Lal07Y8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lal0zo8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Lal0z48qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lal00I8qEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Lal00Y8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_qQK34IhqEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Lal00o8qEeq5HrfdV5ATIg" points="[2650, 795, -643984, -643984]$[2590, 658, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lal0048qEeq5HrfdV5ATIg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lal01I8qEeq5HrfdV5ATIg" id="(0.7804878048780488,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Lal05Y8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_LakmpI8qEeq5HrfdV5ATIg" target="_Laj_kY8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lal05o8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Lal0548qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lal06I8qEeq5HrfdV5ATIg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Lal06Y8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_PzV-UIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Lal06o8qEeq5HrfdV5ATIg" points="[475, 315, -643984, -643984]$[875, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lal0648qEeq5HrfdV5ATIg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lal07I8qEeq5HrfdV5ATIg" id="(0.09900990099009901,0.9971988795518194)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Lal1D48qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_LanCwI8qEeq5HrfdV5ATIg" target="_Lal0oI8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Lal1EI8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Lal1EY8qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lal1Eo8qEeq5HrfdV5ATIg" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Lal1E48qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_zEGoIIhpEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Lal1FI8qEeq5HrfdV5ATIg" points="[1235, 515, -643984, -643984]$[1195, 418, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lal1FY8qEeq5HrfdV5ATIg" id="(0.3418803418803419,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lal1Fo8qEeq5HrfdV5ATIg" id="(0.22857142857142856,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LambsI8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_Laj_kY8qEeq5HrfdV5ATIg" target="_LakmtI8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LambsY8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8ass4I80Eeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lambso8qEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Lambs48qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_YyIeQIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LambtI8qEeq5HrfdV5ATIg" points="[1150, 50, -643984, -643984]$[630, -88, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LambtY8qEeq5HrfdV5ATIg" id="(0.297029702970297,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lambto8qEeq5HrfdV5ATIg" id="(0.7446808510638298,0.996763754045307)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LambuI8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_LalN248qEeq5HrfdV5ATIg" target="_Lal1F48qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LambuY8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Lambuo8qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lambu48qEeq5HrfdV5ATIg" x="-1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LambvI8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_ToeSQIhqEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LambvY8qEeq5HrfdV5ATIg" points="[1715, 755, -643984, -643984]$[1655, 618, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lambvo8qEeq5HrfdV5ATIg" id="(0.24390243902439024,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lambv48qEeq5HrfdV5ATIg" id="(0.6944444444444444,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_LambwI8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_Lal07Y8qEeq5HrfdV5ATIg" target="_Lakmxo8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_LambwY8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Lambwo8qEeq5HrfdV5ATIg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lambw48qEeq5HrfdV5ATIg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LambxI8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_uCkygIhqEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LambxY8qEeq5HrfdV5ATIg" points="[2490, 555, -643984, -643984]$[2410, 418, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lambxo8qEeq5HrfdV5ATIg" id="(0.2926829268292683,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Lambx48qEeq5HrfdV5ATIg" id="(0.9942196531791907,0.970873786407767)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_mJdKQJm6Eeq0jfmjFzaebA" type="Generalization_Edge" source="_hxfEcJm6Eeq0jfmjFzaebA" target="_Laj_kY8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_mJdKQ5m6Eeq0jfmjFzaebA" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mJdKRJm6Eeq0jfmjFzaebA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_mJdKQZm6Eeq0jfmjFzaebA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_mI2tUJm6Eeq0jfmjFzaebA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mJdKQpm6Eeq0jfmjFzaebA" points="[600, 320, -643984, -643984]$[1100, 171, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mKpdEJm6Eeq0jfmjFzaebA" id="(0.8,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mKpdEZm6Eeq0jfmjFzaebA" id="(0.0,0.9327731092436975)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_0s93AJm6Eeq0jfmjFzaebA" type="Generalization_Edge" source="_w1FmgJm6Eeq0jfmjFzaebA" target="_Laj_kY8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0s93A5m6Eeq0jfmjFzaebA" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0s93BJm6Eeq0jfmjFzaebA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_0s93AZm6Eeq0jfmjFzaebA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_0seHwJm6Eeq0jfmjFzaebA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0s93Apm6Eeq0jfmjFzaebA" points="[460, 320, -643984, -643984]$[1100, 169, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0uEDMJm6Eeq0jfmjFzaebA" id="(0.8,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0uEDMZm6Eeq0jfmjFzaebA" id="(0.0,0.9159663865546218)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_HyzfcJm7Eeq0jfmjFzaebA" type="Generalization_Edge" source="_DSsxUJm7Eeq0jfmjFzaebA" target="_Lakmxo8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Hy0GgJm7Eeq0jfmjFzaebA" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Hy0GgZm7Eeq0jfmjFzaebA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_HyzfcZm7Eeq0jfmjFzaebA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_HyWzgJm7Eeq0jfmjFzaebA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hyzfcpm7Eeq0jfmjFzaebA" points="[2100, 560, -643984, -643984]$[2500, 400, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hz0zIJm7Eeq0jfmjFzaebA" id="(0.7947019867549668,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hz0zIZm7Eeq0jfmjFzaebA" id="(0.0,0.7766990291262136)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_8ZhpMI8pEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="Vision_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_D9vorY8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D9voro8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D9vor48qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_D9vosI8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_-r78AIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D9vosY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_D9voso8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#___G0EIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D9vos48qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D9votI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D9votY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D9voto8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9vot48qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D9vouI8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D9vouY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D9vouo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D9vou48qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9vovI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_9D3yAIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9vowI8qEeq5HrfdV5ATIg" x="17490" y="1090"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_D9vow48qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D9voxI8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D9voxY8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D9voxo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D9vox48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D9voyI8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9voyY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D9voyo8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D9voy48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D9vozI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D9vozY8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9vozo8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_FiUlAIhsEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9vo0o8qEeq5HrfdV5ATIg" x="17890" y="1090"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_D9wPoI8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D9wPoY8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D9wPoo8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D9wPo48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D9wPpI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D9wPpY8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9wPpo8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D9wPp48qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D9wPqI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D9wPqY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D9wPqo8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9wPq48qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ExzHAIhsEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9wPr48qEeq5HrfdV5ATIg" x="17730" y="1090"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_D9wPsI8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D9wPsY8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D9wPso8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D9wPs48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D9wPtI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D9wPtY8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9wPto8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D9wPt48qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D9wPuI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D9wPuY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D9wPuo8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9wPu48qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_iLwgEIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9wPv48qEeq5HrfdV5ATIg" x="17830" y="690"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_D9wPwI8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D9wPwY8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D9wPwo8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_D9wPw48qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_507w0IhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D9wPxI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D9wPxY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D9wPxo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D9wPx48qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9wPyI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D9wPyY8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D9wPyo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D9wPy48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D9wPzI8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9wPzY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_2p5YMIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9wP0Y8qEeq5HrfdV5ATIg" x="17970" y="870"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_D9wP0o8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D9wP048qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D9wP1I8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_D9wP1Y8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_xJ4sQIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D9wP1o8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_D9wP148qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_yEO0oIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D9wP2I8qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D9wP2Y8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D9wP2o8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D9wP248qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9wP3I8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_D9wP3Y8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_D9wP3o8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_D9wP348qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_D9wP4I8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9wP4Y8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_t32TwIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D9wP5Y8qEeq5HrfdV5ATIg" x="17610" y="870"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_8ZhpMY8pEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_8ZhpMo8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_8ZhpM48pEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_y_tHYK8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_D9vBgI8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_D9wP0o8qEeq5HrfdV5ATIg" target="_D9wPsI8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D9vBgY8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D9vBgo8qEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_D9vBg48qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_MhVlkIhsEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D9vBhI8qEeq5HrfdV5ATIg" points="[17740, 860, -643984, -643984]$[17860, 780, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D9vBhY8qEeq5HrfdV5ATIg" id="(0.7035175879396985,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D9vBho8qEeq5HrfdV5ATIg" id="(0.4,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_D9vokY8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_D9wPwI8qEeq5HrfdV5ATIg" target="_D9wPsI8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D9voko8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D9vok48qEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_D9volI8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_L7Zm8IhsEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D9volY8qEeq5HrfdV5ATIg" points="[18060, 860, -643984, -643984]$[17900, 780, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D9volo8qEeq5HrfdV5ATIg" id="(0.4694835680751174,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D9vol48qEeq5HrfdV5ATIg" id="(0.8,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_D9vomI8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_D9wPoI8qEeq5HrfdV5ATIg" target="_D9wP0o8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D9vomY8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D9vomo8qEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_D9vom48qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_KqD64IhsEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D9vonI8qEeq5HrfdV5ATIg" points="[17780, 1080, -643984, -643984]$[17700, 978, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D9vonY8qEeq5HrfdV5ATIg" id="(0.46153846153846156,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D9vono8qEeq5HrfdV5ATIg" id="(0.5025125628140703,0.9971988795518204)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_D9von48qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_D9vorY8qEeq5HrfdV5ATIg" target="_D9wP0o8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D9vooI8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D9vooY8qEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_D9vooo8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_KFjfoIhsEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D9voo48qEeq5HrfdV5ATIg" points="[17620, 1080, -643984, -643984]$[17640, 978, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D9vopI8qEeq5HrfdV5ATIg" id="(0.6763285024154589,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D9vopY8qEeq5HrfdV5ATIg" id="(0.20100502512562815,0.9971988795518204)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_D9vopo8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_D9vow48qEeq5HrfdV5ATIg" target="_D9wP0o8qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_D9vop48qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_D9voqI8qEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_D9voqY8qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_LUKn0IhsEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D9voqo8qEeq5HrfdV5ATIg" points="[17940, 1080, -643984, -643984]$[17760, 978, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D9voq48qEeq5HrfdV5ATIg" id="(0.46511627906976744,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D9vorI8qEeq5HrfdV5ATIg" id="(0.8040201005025126,0.9971988795518204)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_-5u8II8pEeq5HrfdV5ATIg" type="PapyrusUMLProfileDiagram" name="DataParallel_layers_(multi-GPU, distributed)" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_BNa2B48qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BNa2CI8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BNa2CY8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BNa2Co8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BNa2C48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BNa2DI8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BNa2DY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BNa2Do8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BNa2D48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BNa2EI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BNa2EY8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BNa2Eo8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_2bnZsIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BNa2Fo8qEeq5HrfdV5ATIg" x="18650" y="950"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BNa2F48qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BNa2GI8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BNa2GY8qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_BNa2Go8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_rBanQIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BNa2G48qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BNa2HI8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_r6Q60IhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BNa2HY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BNa2Ho8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_stpfkIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BNa2H48qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BNa2II8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BNa2IY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BNa2Io8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BNa2I48qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BNa2JI8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BNa2JY8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BNa2Jo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BNa2J48qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BNa2KI8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_jq9XEIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BNa2LI8qEeq5HrfdV5ATIg" x="18370" y="690"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BNa2LY8qEeq5HrfdV5ATIg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BNa2Lo8qEeq5HrfdV5ATIg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BNa2L48qEeq5HrfdV5ATIg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_BNa2MI8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_vpBrkIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BNa2MY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BNa2Mo8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_xG4JoIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BNa2M48qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BNa2NI8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_yJonIIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BNa2NY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BNa2No8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_zcpuMIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BNa2N48qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_BNa2OI8qEeq5HrfdV5ATIg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_1KdT0IhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BNa2OY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BNa2Oo8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BNa2O48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BNa2PI8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BNa2PY8qEeq5HrfdV5ATIg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_BNa2Po8qEeq5HrfdV5ATIg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_BNa2P48qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BNa2QI8qEeq5HrfdV5ATIg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BNa2QY8qEeq5HrfdV5ATIg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BNa2Qo8qEeq5HrfdV5ATIg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_tsGr4IhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BNa2Ro8qEeq5HrfdV5ATIg" x="18310" y="950"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_-5u8IY8pEeq5HrfdV5ATIg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_-5u8Io8pEeq5HrfdV5ATIg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_-5u8I48pEeq5HrfdV5ATIg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_z8xzoK8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_BNaO8I8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_BNa2LY8qEeq5HrfdV5ATIg" target="_BNa2F48qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BNaO8Y8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BNaO8o8qEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BNaO848qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_5KbJUIhtEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BNaO9I8qEeq5HrfdV5ATIg" points="[18420, 940, -643984, -643984]$[18440, 814, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BNaO9Y8qEeq5HrfdV5ATIg" id="(0.44280442804428044,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BNaO9o8qEeq5HrfdV5ATIg" id="(0.3225806451612903,0.9975308641975306)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_BNa2AI8qEeq5HrfdV5ATIg" type="Generalization_Edge" source="_BNa2B48qEeq5HrfdV5ATIg" target="_BNa2F48qEeq5HrfdV5ATIg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_BNa2AY8qEeq5HrfdV5ATIg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BNa2Ao8qEeq5HrfdV5ATIg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_BNa2A48qEeq5HrfdV5ATIg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_4pLdcIhtEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BNa2BI8qEeq5HrfdV5ATIg" points="[18680, 940, -643984, -643984]$[18560, 814, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BNa2BY8qEeq5HrfdV5ATIg" id="(0.30303030303030304,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BNa2Bo8qEeq5HrfdV5ATIg" id="(0.8064516129032258,0.9975308641975306)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_3Dkw8JT3Eeq5BK6mmo2rWg" type="PapyrusUMLProfileDiagram" name="Convolution_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_O7mR6K8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7mR6a8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7mR6q8WEeqhVOlV64dXmA" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7mR668WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7mR7K8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7mR7a8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7mR7q8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7mR768WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7mR8K8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7mR8a8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7mR8q8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7mR868WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_AfPLEIVKEeqvud4Ae2T3Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7mR968WEeqhVOlV64dXmA" x="580" y="800" width="121" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7mR-K8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7mR-a8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7mR-q8WEeqhVOlV64dXmA" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7mR-68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7mR_K8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7mR_a8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7mR_q8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7mR_68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7mSAK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7mSAa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7mSAq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7mSA68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_6j6cIIVJEeqvud4Ae2T3Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7mSB68WEeqhVOlV64dXmA" x="300" y="800" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7m48K8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7m48a8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7m48q8WEeqhVOlV64dXmA" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7m4868WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7m49K8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7m49a8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7m49q8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7m4968WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7m4-K8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7m4-a8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7m4-q8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7m4-68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_2Ej78IVJEeqvud4Ae2T3Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7m4_68WEeqhVOlV64dXmA" x="160" y="800" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7m5AK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7m5Aa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7m5Aq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_O7m5A68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_NbNPsKSuEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7m5BK8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7m5Ba8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7m5Bq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7m5B68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7m5CK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7m5Ca8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7m5Cq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7m5C68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7m5DK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7m5Da8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_37PHIKStEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7m5Ea8WEeqhVOlV64dXmA" x="480" y="420" width="241" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7m5Iq8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7m5I68WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7m5JK8WEeqhVOlV64dXmA" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7m5Ja8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7m5Jq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7m5J68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7m5KK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7m5Ka8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7m5Kq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7m5K68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7m5LK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7m5La8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_08Tc0KG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7m5Ma8WEeqhVOlV64dXmA" x="920" y="800" width="121" height="58"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7m5Mq8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7m5M68WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7m5NK8WEeqhVOlV64dXmA" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7m5Na8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7m5Nq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7m5N68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7m5OK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7m5Oa8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7m5Oq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7m5O68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7m5PK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7m5Pa8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#__Er4oIVJEeqvud4Ae2T3Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7m5Qa8WEeqhVOlV64dXmA" x="440" y="800" width="121" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7ngJa8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7ngJq8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7ngJ68WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_O7ngKK8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_SowbcKG1EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ngKa8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7ngKq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7ngK68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7ngLK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ngLa8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7ngLq8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7ngL68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7ngMK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7ngMa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ngMq8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_RBqh0KG1EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ngNq8WEeqhVOlV64dXmA" x="440" y="700" width="261" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7ngN68WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7ngOK8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7ngOa8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_O7ngOq8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_etxlIKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ngO68WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7ngPK8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_f_57YKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ngPa8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7ngPq8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_hwRFwKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ngP68WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7ngQK8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_i2jYYKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ngQa8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7ngQq8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_lF9PMKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ngQ68WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7ngRK8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_mtJ2gKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ngRa8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7ngRq8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_oTAaAKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ngR68WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7ngSK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7ngSa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7ngSq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ngS68WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7ngTK8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7ngTa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7ngTq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7ngT68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ngUK8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_d-jusKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ngVK8WEeqhVOlV64dXmA" x="780" y="560" width="261" height="161"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7oHEK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7oHEa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7oHEq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_O7oHE68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_7rUZ4KG1EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7oHFK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7oHFa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_85lj0KG1EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7oHFq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7oHF68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ak_cwKG2EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7oHGK8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7oHGa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7oHGq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7oHG68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oHHK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7oHHa8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7oHHq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7oHH68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7oHIK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oHIa8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_5JUXMKG1EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oHJa8WEeqhVOlV64dXmA" x="260" y="560" width="241" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7oHJq8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7oHJ68WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7oHKK8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7oHKa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7oHKq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7oHK68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oHLK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7oHLa8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7oHLq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7oHL68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7oHMK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oHMa8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_8w4C8IVJEeqvud4Ae2T3Lg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oHNa8WEeqhVOlV64dXmA" x="540" y="560"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7oHNq8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7oHN68WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7oHOK8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_O7oHOa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_MKi_YH5qEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7oHOq8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7oHO68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7oHPK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7oHPa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oHPq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7oHP68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7oHQK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7oHQa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7oHQq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oHQ68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ISZCEH5qEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oHR68WEeqhVOlV64dXmA" x="60" y="220" width="181" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7oHSK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7oHSa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7oHSq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_O7oHS68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ZsHuAH5qEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7oHTK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7oHTa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_a-bqcH5qEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7oHTq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7oHT68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_bcYxwH5qEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7oHUK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7oHUa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_cR75sH5qEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7oHUq8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7oHU68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7oHVK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7oHVa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oHVq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7oHV68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7oHWK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7oHWa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7oHWq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oHW68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_YZ54MH5qEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oHX68WEeqhVOlV64dXmA" x="60" y="20" width="381" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7oHYK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7oHYa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7oHYq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_O7oHY68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_SSgFUKG6EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7oHZK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7oHZa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ZHdK8KG6EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ouIK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7ouIa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_chtrUKG6EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ouIq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7ouI68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_iro28KG6EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ouJK8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7ouJa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7ouJq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7ouJ68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ouKK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7ouKa8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7ouKq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7ouK68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7ouLK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ouLa8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Ip7BgKG6EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ouMa8WEeqhVOlV64dXmA" x="780" y="340" width="261"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7ouMq8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7ouM68WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7ouNK8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7ouNa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7ouNq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7ouN68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ouOK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7ouOa8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7ouOq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7ouO68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7ouPK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ouPa8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_anKPYH5pEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ouQa8WEeqhVOlV64dXmA" x="280" y="220" width="161" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7ouYa8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7ouYq8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7ouY68WEeqhVOlV64dXmA" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7ouZK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7ouZa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7ouZq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ouZ68WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7ouaK8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7ouaa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7ouaq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7oua68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oubK8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_34MmMKG4EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oucK8WEeqhVOlV64dXmA" x="780" y="800" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7ouca8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7oucq8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7ouc68WEeqhVOlV64dXmA" visible="false" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7oudK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7ouda8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7oudq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oud68WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7oueK8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7ouea8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7oueq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7oue68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7oufK8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_g_SxQKG3EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7ougK8WEeqhVOlV64dXmA" x="40" y="800" height="61"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7pVOK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7pVOa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7pVOq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_O7pVO68WEeqhVOlV64dXmA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_O7pVPK8WEeqhVOlV64dXmA" key="collapsed" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_O7pVPa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_xLDlAH5nEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7pVPq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7pVP68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_PgB_YH5oEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7pVQK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7pVQa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_RrmfEH5oEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7pVQq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7pVQ68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_UPxE8H5oEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7pVRK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7pVRa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_NJHtgKG2EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7pVRq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7pVR68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Ou9p8KG2EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7pVSK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7pVSa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_SXLt0KG2EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7pVSq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7pVS68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_THvoEKG2EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7pVTK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7pVTa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_UiUvsKG2EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7pVTq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7pVT68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_kn6TMKG2EeqsNvCDUfZJVA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7pVUK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_O7pVUa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_bGMOcKStEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7pVUq8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7pVU68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7pVVK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7pVVa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7pVVq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_O7pVV68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_O7pVWK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_O7pVWa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_O7pVWq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7pVW68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_5DtswH2KEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O7pVX68WEeqhVOlV64dXmA" x="480" y="160" width="241" height="221"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_3DkxwZT3Eeq5BK6mmo2rWg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3DkxwpT3Eeq5BK6mmo2rWg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_3Dkxw5T3Eeq5BK6mmo2rWg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_Nr2NYJOPEeqnY_bZg2Ebjg"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_KngOIJnbEeqZJ7Fgbu454w" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="_3DkxxJT3Eeq5BK6mmo2rWg" type="Generalization_Edge">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3DkxxZT3Eeq5BK6mmo2rWg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3DkxxpT3Eeq5BK6mmo2rWg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Dkxx5T3Eeq5BK6mmo2rWg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3DkxyJT3Eeq5BK6mmo2rWg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3DkxyZT3Eeq5BK6mmo2rWg" points="[-676, 628, -643984, -643984]$[-716, 418, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3DkxypT3Eeq5BK6mmo2rWg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Dkxy5T3Eeq5BK6mmo2rWg" id="(0.7373271889400922,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3DkxzJT3Eeq5BK6mmo2rWg" type="Generalization_Edge">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3DkxzZT3Eeq5BK6mmo2rWg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3DkxzpT3Eeq5BK6mmo2rWg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Dkxz5T3Eeq5BK6mmo2rWg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Dkx0JT3Eeq5BK6mmo2rWg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Dkx0ZT3Eeq5BK6mmo2rWg" points="[-1356, 628, -643984, -643984]$[-1336, 475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Dkx0pT3Eeq5BK6mmo2rWg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Dkx05T3Eeq5BK6mmo2rWg" id="(0.4608294930875576,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Dkx1JT3Eeq5BK6mmo2rWg" type="Generalization_Edge">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Dkx1ZT3Eeq5BK6mmo2rWg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3Dkx1pT3Eeq5BK6mmo2rWg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Dkx15T3Eeq5BK6mmo2rWg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Dkx2JT3Eeq5BK6mmo2rWg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Dkx2ZT3Eeq5BK6mmo2rWg" points="[-1760, 1362, -643984, -643984]$[-1440, 1207, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Dkx2pT3Eeq5BK6mmo2rWg" id="(0.54,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Dkx25T3Eeq5BK6mmo2rWg" id="(0.4608294930875576,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Dkx3JT3Eeq5BK6mmo2rWg" type="Generalization_Edge">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Dkx3ZT3Eeq5BK6mmo2rWg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3Dkx3pT3Eeq5BK6mmo2rWg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Dkx35T3Eeq5BK6mmo2rWg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Dkx4JT3Eeq5BK6mmo2rWg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Dkx4ZT3Eeq5BK6mmo2rWg" points="[-576, -350, -643984, -643984]$[-516, -399, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Dkx4pT3Eeq5BK6mmo2rWg" id="(0.8248587570621468,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Dkx45T3Eeq5BK6mmo2rWg" id="(0.3081761006289308,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Dkx5JT3Eeq5BK6mmo2rWg" type="Generalization_Edge">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Dkx5ZT3Eeq5BK6mmo2rWg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3Dkx5pT3Eeq5BK6mmo2rWg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Dkx55T3Eeq5BK6mmo2rWg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Dkx6JT3Eeq5BK6mmo2rWg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Dkx6ZT3Eeq5BK6mmo2rWg" points="[-1216, 628, -643984, -643984]$[-1336, 475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Dkx6pT3Eeq5BK6mmo2rWg" id="(0.5660377358490566,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Dkx65T3Eeq5BK6mmo2rWg" id="(0.4608294930875576,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Dkx7JT3Eeq5BK6mmo2rWg" type="Generalization_Edge">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Dkx7ZT3Eeq5BK6mmo2rWg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3Dkx7pT3Eeq5BK6mmo2rWg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Dkx75T3Eeq5BK6mmo2rWg" x="-1" y="57"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Dkx8JT3Eeq5BK6mmo2rWg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Dkx8ZT3Eeq5BK6mmo2rWg" points="[-916, 628, -643984, -643984]$[-1356, 475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Dkx8pT3Eeq5BK6mmo2rWg" id="(0.7547169811320755,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Dkx85T3Eeq5BK6mmo2rWg" id="(0.3686635944700461,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Dkx9JT3Eeq5BK6mmo2rWg" type="Generalization_Edge">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Dkx9ZT3Eeq5BK6mmo2rWg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3Dkx9pT3Eeq5BK6mmo2rWg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Dkx95T3Eeq5BK6mmo2rWg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3Dkx-JT3Eeq5BK6mmo2rWg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3Dkx-ZT3Eeq5BK6mmo2rWg" points="[-1096, 628, -643984, -643984]$[-1336, 475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Dkx-pT3Eeq5BK6mmo2rWg" id="(0.37735849056603776,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3Dkx-5T3Eeq5BK6mmo2rWg" id="(0.4608294930875576,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3Dkx_JT3Eeq5BK6mmo2rWg" type="Generalization_Edge">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3Dkx_ZT3Eeq5BK6mmo2rWg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3Dkx_pT3Eeq5BK6mmo2rWg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Dkx_5T3Eeq5BK6mmo2rWg" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3DkyAJT3Eeq5BK6mmo2rWg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3DkyAZT3Eeq5BK6mmo2rWg" points="[-1640, 1360, -643984, -643984]$[-1440, 1207, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3DkyApT3Eeq5BK6mmo2rWg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3DkyA5T3Eeq5BK6mmo2rWg" id="(0.4858757062146893,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3DkyBJT3Eeq5BK6mmo2rWg" type="Generalization_Edge">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3DkyBZT3Eeq5BK6mmo2rWg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3DkyBpT3Eeq5BK6mmo2rWg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3DkyB5T3Eeq5BK6mmo2rWg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3DkyCJT3Eeq5BK6mmo2rWg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3DkyCZT3Eeq5BK6mmo2rWg" points="[-416, 628, -643984, -643984]$[-416, 411, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3DkyCpT3Eeq5BK6mmo2rWg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3DkyC5T3Eeq5BK6mmo2rWg" id="(0.7373271889400922,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3DkyDJT3Eeq5BK6mmo2rWg" type="Generalization_Edge">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3DkyDZT3Eeq5BK6mmo2rWg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3DkyDpT3Eeq5BK6mmo2rWg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3DkyD5T3Eeq5BK6mmo2rWg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3DkyEJT3Eeq5BK6mmo2rWg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3DkyEZT3Eeq5BK6mmo2rWg" points="[-576, 310, -643984, -643984]$[-670, 270, -643984, -643984]$[-959, 161, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3DkyEpT3Eeq5BK6mmo2rWg" id="(0.0,0.02)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3DkyE5T3Eeq5BK6mmo2rWg" id="(0.8238993710691824,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_3DkyFJT3Eeq5BK6mmo2rWg" type="Generalization_Edge">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3DkyFZT3Eeq5BK6mmo2rWg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3DkyFpT3Eeq5BK6mmo2rWg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3DkyF5T3Eeq5BK6mmo2rWg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3DkyGJT3Eeq5BK6mmo2rWg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3DkyGZT3Eeq5BK6mmo2rWg" points="[-370, -270, -643984, -643984]$[-370, -379, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3DkyGpT3Eeq5BK6mmo2rWg" id="(0.30414746543778803,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3DkyG5T3Eeq5BK6mmo2rWg" id="(0.6163522012578616,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7lq0K8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7oHYK8WEeqhVOlV64dXmA" target="_O7pVOK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7lq0a8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__xikQPjcEeq6c-2opUmylw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7lq0q8WEeqhVOlV64dXmA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7lq068WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_gvxQoKSuEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7lq1K8WEeqhVOlV64dXmA" points="[780, 360, -643984, -643984]$[681, 360, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7lq1a8WEeqhVOlV64dXmA" id="(0.0,0.136986301369863)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7lq1q8WEeqhVOlV64dXmA" id="(1.0,0.9049773755656109)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7mR4K8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7oHNq8WEeqhVOlV64dXmA" target="_O7oHSK8WEeqhVOlV64dXmA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7mR4a8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_O7mR4q8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7mR468WEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7mR5K8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_J9Ae4H5sEeqSHNFOHg2_Jw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7mR5a8WEeqhVOlV64dXmA" points="[160, 220, -643984, -643984]$[160, 180, -643984, -643984]$[160, 141, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7mR5q8WEeqhVOlV64dXmA" id="(0.5524861878453039,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7mR568WEeqhVOlV64dXmA" id="(0.26246719160104987,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7mSCK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7ngJa8WEeqhVOlV64dXmA" target="_O7oHEK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7mSCa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_O7mSCq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7mSC68WEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7mSDK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_RL6_IKG3EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7mSDa8WEeqhVOlV64dXmA" points="[460, 880, -643984, -643984]$[460, 820, -643984, -643984]$[460, 781, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7mSDq8WEeqhVOlV64dXmA" id="(0.07662835249042145,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7mSD68WEeqhVOlV64dXmA" id="(0.8298755186721992,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7mSEK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7ouYa8WEeqhVOlV64dXmA" target="_O7ngN68WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7mSEa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_O7mSEq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7mSE68WEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7mSFK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_L9aA8KG5EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7mSFa8WEeqhVOlV64dXmA" points="[880, 800, -643984, -643984]$[880, 760, -643984, -643984]$[840, 760, -643984, -643984]$[840, 721, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7mSFq8WEeqhVOlV64dXmA" id="(0.5309734513274337,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7mSF68WEeqhVOlV64dXmA" id="(0.22988505747126436,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7m5Eq8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7pVOK8WEeqhVOlV64dXmA" target="_O7oHSK8WEeqhVOlV64dXmA" routing="Rectilinear">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_GcXyoPjfEeq6c-2opUmylw" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_GcXyofjfEeq6c-2opUmylw" key="routing" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7m5E68WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_O7m5FK8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7m5Fa8WEeqhVOlV64dXmA" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7m5Fq8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_JBpp4H5sEeqSHNFOHg2_Jw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7m5F68WEeqhVOlV64dXmA" points="[560, 160, -643984, -643984]$[560, 100, -643984, -643984]$[900, 100, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7m5GK8WEeqhVOlV64dXmA" id="(0.4979253112033195,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7m5Ga8WEeqhVOlV64dXmA" id="(1.0,0.6611570247933884)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7m5Gq8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7mR6K8WEeqhVOlV64dXmA" target="_O7ngJa8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7m5G68WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_O7m5HK8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7m5Ha8WEeqhVOlV64dXmA" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7m5Hq8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_Qt4YQKG3EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7m5H68WEeqhVOlV64dXmA" points="[640, 920, -643984, -643984]$[640, 860, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7m5IK8WEeqhVOlV64dXmA" id="(0.49586776859504134,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7m5Ia8WEeqhVOlV64dXmA" id="(0.7662835249042146,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7ngAK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7ouMq8WEeqhVOlV64dXmA" target="_O7oHSK8WEeqhVOlV64dXmA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7ngAa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_O7ngAq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ngA68WEeqhVOlV64dXmA" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7ngBK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_Je4_gH5sEeqSHNFOHg2_Jw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7ngBa8WEeqhVOlV64dXmA" points="[360, 220, -643984, -643984]$[360, 141, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ngBq8WEeqhVOlV64dXmA" id="(0.4968944099378882,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ngB68WEeqhVOlV64dXmA" id="(0.7874015748031497,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7ngCK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7ouca8WEeqhVOlV64dXmA" target="_O7oHEK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7ngCa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_O7ngCq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ngC68WEeqhVOlV64dXmA" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7ngDK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_q1mIAKG3EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7ngDa8WEeqhVOlV64dXmA" points="[80, 800, -643984, -643984]$[80, 720, -643984, -643984]$[320, 720, -643984, -643984]$[320, 661, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ngDq8WEeqhVOlV64dXmA" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ngD68WEeqhVOlV64dXmA" id="(0.24896265560165975,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7ngEK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7oHEK8WEeqhVOlV64dXmA" target="_O7m5AK8WEeqhVOlV64dXmA" routing="Tree">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7ngEa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JDepsPjdEeq6c-2opUmylw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ngEq8WEeqhVOlV64dXmA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7ngE68WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_QvZkUKSuEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7ngFK8WEeqhVOlV64dXmA" points="[340, 770, -643984, -643984]$[340, 640, -643984, -643984]$[680, 640, -643984, -643984]$[680, 560, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ngFa8WEeqhVOlV64dXmA" id="(0.33195020746887965,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ngFq8WEeqhVOlV64dXmA" id="(0.8298755186721992,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7ngF68WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7ngN68WEeqhVOlV64dXmA" target="_O7m5AK8WEeqhVOlV64dXmA" routing="Tree">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7ngGK8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JE1UkPjdEeq6c-2opUmylw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ngGa8WEeqhVOlV64dXmA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7ngGq8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_Rvo5UKSuEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7ngG68WEeqhVOlV64dXmA" points="[920, 560, -643984, -643984]$[920, 520, -643984, -643984]$[600, 520, -643984, -643984]$[600, 481, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ngHK8WEeqhVOlV64dXmA" id="(0.5363984674329502,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ngHa8WEeqhVOlV64dXmA" id="(0.4979253112033195,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7ngHq8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7m5AK8WEeqhVOlV64dXmA" target="_O7pVOK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7ngH68WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__yEIsPjcEeq6c-2opUmylw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ngIK8WEeqhVOlV64dXmA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7ngIa8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_SbB_sKSuEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7ngIq8WEeqhVOlV64dXmA" points="[660, 420, -643984, -643984]$[660, 400, -643984, -643984]$[680, 400, -643984, -643984]$[680, 381, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ngI68WEeqhVOlV64dXmA" id="(0.4979253112033195,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ngJK8WEeqhVOlV64dXmA" id="(0.4979253112033195,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7ouQq8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7mR-K8WEeqhVOlV64dXmA" target="_O7oHEK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7ouQ68WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_O7ouRK8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ouRa8WEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7ouRq8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_pt11wKG3EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7ouR68WEeqhVOlV64dXmA" points="[360, 800, -643984, -643984]$[360, 720, -643984, -643984]$[320, 720, -643984, -643984]$[320, 661, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ouSK8WEeqhVOlV64dXmA" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ouSa8WEeqhVOlV64dXmA" id="(0.24896265560165975,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7ouSq8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7oHJq8WEeqhVOlV64dXmA" target="_O7m5AK8WEeqhVOlV64dXmA" routing="Tree">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7ouS68WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_JFW5APjdEeq6c-2opUmylw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ouTK8WEeqhVOlV64dXmA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7ouTa8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_ROpsIKSuEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7ouTq8WEeqhVOlV64dXmA" points="[600, 560, -643984, -643984]$[600, 520, -643984, -643984]$[720, 520, -643984, -643984]$[720, 481, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ouT68WEeqhVOlV64dXmA" id="(0.5357142857142857,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ouUK8WEeqhVOlV64dXmA" id="(0.8298755186721992,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7ouUa8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7m48K8WEeqhVOlV64dXmA" target="_O7oHEK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7ouUq8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_O7ouU68WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ouVK8WEeqhVOlV64dXmA" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7ouVa8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_qNQVoKG3EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7ouVq8WEeqhVOlV64dXmA" points="[200, 800, -643984, -643984]$[200, 720, -643984, -643984]$[320, 720, -643984, -643984]$[320, 661, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ouV68WEeqhVOlV64dXmA" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ouWK8WEeqhVOlV64dXmA" id="(0.24896265560165975,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7ouWa8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7m5Iq8WEeqhVOlV64dXmA" target="_O7ngN68WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7ouWq8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_O7ouW68WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7ouXK8WEeqhVOlV64dXmA" x="-2" y="57"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7ouXa8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_KvNvgKG5EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7ouXq8WEeqhVOlV64dXmA" points="[1020, 800, -643984, -643984]$[1020, 760, -643984, -643984]$[980, 760, -643984, -643984]$[980, 721, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ouX68WEeqhVOlV64dXmA" id="(0.49586776859504134,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7ouYK8WEeqhVOlV64dXmA" id="(0.7662835249042146,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_O7pVMK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_O7m5Mq8WEeqhVOlV64dXmA" target="_O7ngJa8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_O7pVMa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_O7pVMq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_O7pVM68WEeqhVOlV64dXmA" x="-1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_O7pVNK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_QScZcKG3EeqsNvCDUfZJVA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_O7pVNa8WEeqhVOlV64dXmA" points="[500, 920, -643984, -643984]$[500, 860, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7pVNq8WEeqhVOlV64dXmA" id="(0.49586776859504134,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_O7pVN68WEeqhVOlV64dXmA" id="(0.22988505747126436,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_xkHZcJUJEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Module" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_h8FXiKD4Eeqvvbr3PHPJ5Q" type="Stereotype_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_h8FXiaD4Eeqvvbr3PHPJ5Q" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_h8FXiqD4Eeqvvbr3PHPJ5Q" key="canonical" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_h8FXi6D4Eeqvvbr3PHPJ5Q" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_h8FXjKD4Eeqvvbr3PHPJ5Q" type="Stereotype_AttributeCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BDTAYOawEeq2yMJqys2DtQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BDTncOawEeq2yMJqys2DtQ" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_h8FXjaD4Eeqvvbr3PHPJ5Q" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_7EMR4IhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_h8FXjqD4Eeqvvbr3PHPJ5Q"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_h8FXj6D4Eeqvvbr3PHPJ5Q" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_7vDMwIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_h8FXkKD4Eeqvvbr3PHPJ5Q"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_h8FXkaD4Eeqvvbr3PHPJ5Q" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_9DLHEIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_h8FXkqD4Eeqvvbr3PHPJ5Q"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_h8FXk6D4Eeqvvbr3PHPJ5Q" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ivxlgIvAEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_h8FXlKD4Eeqvvbr3PHPJ5Q"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_A_YwwOawEeq2yMJqys2DtQ" type="Property_ClassAttributeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BDTnceawEeq2yMJqys2DtQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BDTncuawEeq2yMJqys2DtQ" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="AIML.profile.uml#__N7qULYUEeq1Koq3J5meEA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A_YwweawEeq2yMJqys2DtQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_A_YwwuawEeq2yMJqys2DtQ" type="Property_ClassAttributeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BDTnc-awEeq2yMJqys2DtQ" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BDTndOawEeq2yMJqys2DtQ" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_AtDTsLYVEeq1Koq3J5meEA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_A_Yww-awEeq2yMJqys2DtQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_h8FXlaD4Eeqvvbr3PHPJ5Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_h8FXlqD4Eeqvvbr3PHPJ5Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_h8FXl6D4Eeqvvbr3PHPJ5Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_h8FXmKD4Eeqvvbr3PHPJ5Q"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_h8FXmaD4Eeqvvbr3PHPJ5Q" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_h8FXmqD4Eeqvvbr3PHPJ5Q"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_h8FXm6D4Eeqvvbr3PHPJ5Q"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_h8FXnKD4Eeqvvbr3PHPJ5Q"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_h8FXnaD4Eeqvvbr3PHPJ5Q"/>
+ </children>
+ <styles xmi:type="notation:CanonicalStyle" xmi:id="_h8FXnqD4Eeqvvbr3PHPJ5Q"/>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_2E9coH2KEeqSHNFOHg2_Jw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_h8FXoqD4Eeqvvbr3PHPJ5Q" x="386" y="323"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_h8FXpKD4Eeqvvbr3PHPJ5Q" type="Class_MetaclassShape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_h8FXpaD4Eeqvvbr3PHPJ5Q" type="Class_MetaclassNameLabel"/>
+ <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_h8FXtKD4Eeqvvbr3PHPJ5Q" x="404" y="111"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Ti8EYPmcEeqCRcDdPeQY2A" type="StereotypeComment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Ti8EYfmcEeqCRcDdPeQY2A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Ti8EY_mcEeqCRcDdPeQY2A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ti8EYvmcEeqCRcDdPeQY2A" x="604" y="111"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_xkHZcZUJEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_xkHZcpUJEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_xkHZc5UJEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_u1dx8JT1Eeq5BK6mmo2rWg"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_u1dx8JT1Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_h8KP-KD4Eeqvvbr3PHPJ5Q" type="Extension_Edge" source="_h8FXiKD4Eeqvvbr3PHPJ5Q" target="_h8FXpKD4Eeqvvbr3PHPJ5Q">
+ <styles xmi:type="notation:FontStyle" xmi:id="_h8KP-aD4Eeqvvbr3PHPJ5Q"/>
+ <element xmi:type="uml:Extension" href="AIML.profile.uml#_n3BRAH5rEeqSHNFOHg2_Jw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_h8KP-qD4Eeqvvbr3PHPJ5Q" points="[376, 320, -643984, -643984]$[0, 0, -643984, -643984]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Ti8EZPmcEeqCRcDdPeQY2A" type="StereotypeCommentLink" source="_h8FXpKD4Eeqvvbr3PHPJ5Q" target="_Ti8EYPmcEeqCRcDdPeQY2A">
+ <styles xmi:type="notation:FontStyle" xmi:id="_Ti8EZfmcEeqCRcDdPeQY2A"/>
+ <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Ti8EafmcEeqCRcDdPeQY2A" name="BASE_ELEMENT">
+ <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </styles>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ti8EZvmcEeqCRcDdPeQY2A" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ti8EZ_mcEeqCRcDdPeQY2A"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ti8EaPmcEeqCRcDdPeQY2A"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_yrEacJUJEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Tensor" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_XZMIMJUKEeqWd_6S3mbYXg" type="Stereotype_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZMIMZUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZMIMpUKEeqWd_6S3mbYXg" key="canonical" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XZMIM5UKEeqWd_6S3mbYXg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XZMINJUKEeqWd_6S3mbYXg" type="Stereotype_AttributeCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZMINZUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZMINpUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_XZMIN5UKEeqWd_6S3mbYXg" type="Property_ClassAttributeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZMIOJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZMIOZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_mlHloIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZMIOpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZMIO5UKEeqWd_6S3mbYXg" type="Property_ClassAttributeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZMIPJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZMIPZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ncDNoIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZMIPpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZMIP5UKEeqWd_6S3mbYXg" type="Property_ClassAttributeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZMIQJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZMIQZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_oUgfoIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZMIQpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZMIQ5UKEeqWd_6S3mbYXg" type="Property_ClassAttributeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZMIRJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZMIRZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_o5TOwIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZMIRpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZMIR5UKEeqWd_6S3mbYXg" type="Property_ClassAttributeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZMISJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZMISZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_pnJzQIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZMISpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MZFSoK7mEeqHv_gpM7iTmA" type="Property_ClassAttributeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MgvZ0K7mEeqHv_gpM7iTmA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MgwA4K7mEeqHv_gpM7iTmA" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_wocFsKWvEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MZFSoa7mEeqHv_gpM7iTmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MZHu4K7mEeqHv_gpM7iTmA" type="Property_ClassAttributeLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MgwA4a7mEeqHv_gpM7iTmA" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MgwA4q7mEeqHv_gpM7iTmA" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_xs8PoKWvEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MZHu4a7mEeqHv_gpM7iTmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XZMIS5UKEeqWd_6S3mbYXg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_XZMITJUKEeqWd_6S3mbYXg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_XZMITZUKEeqWd_6S3mbYXg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XZMITpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XZMIT5UKEeqWd_6S3mbYXg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XZMIUJUKEeqWd_6S3mbYXg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_XZMIUZUKEeqWd_6S3mbYXg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_XZMIUpUKEeqWd_6S3mbYXg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XZMIU5UKEeqWd_6S3mbYXg"/>
+ </children>
+ <styles xmi:type="notation:CanonicalStyle" xmi:id="_XZMIVJUKEeqWd_6S3mbYXg"/>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_kkWnwIhuEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XZMIWJUKEeqWd_6S3mbYXg" x="270" y="350"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZN9YJUKEeqWd_6S3mbYXg" type="Enumeration_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZN9YZUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZN9YpUKEeqWd_6S3mbYXg" key="canonical" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XZN9Y5UKEeqWd_6S3mbYXg" type="Enumeration_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XZN9ZJUKEeqWd_6S3mbYXg" type="Enumeration_LiteralCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZN9ZZUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZN9ZpUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_XZN9Z5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZN9aJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZN9aZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_GeF-8IvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZN9apUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZN9a5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZN9bJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZN9bZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_VdQs8IvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZN9bpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZN9b5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZN9cJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZN9cZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_YIbSsIvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZN9cpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZN9c5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZN9dJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZN9dZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_bZFyMIvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZN9dpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZN9d5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZN9eJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZN9eZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_czCAoIvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZN9epUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZN9e5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZN9fJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZN9fZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_dzPgcIvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZN9fpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZN9f5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZN9gJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZN9gZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_ez5sMIvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZN9gpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZN9g5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZN9hJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZN9hZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_flb20IvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZN9hpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZN9h5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZN9iJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZN9iZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_gV4cUIvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZN9ipUKEeqWd_6S3mbYXg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XZN9i5UKEeqWd_6S3mbYXg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_XZN9jJUKEeqWd_6S3mbYXg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_XZN9jZUKEeqWd_6S3mbYXg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XZN9jpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <styles xmi:type="notation:CanonicalStyle" xmi:id="_XZN9j5UKEeqWd_6S3mbYXg"/>
+ <element xmi:type="uml:Enumeration" href="AIML.profile.uml#_D6R-YIvIEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XZN9k5UKEeqWd_6S3mbYXg" x="510" y="330"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZPLgJUKEeqWd_6S3mbYXg" type="Enumeration_Shape">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZPLgZUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZPLgpUKEeqWd_6S3mbYXg" key="canonical" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:DecorationNode" xmi:id="_XZPLg5UKEeqWd_6S3mbYXg" type="Enumeration_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_XZPLhJUKEeqWd_6S3mbYXg" type="Enumeration_LiteralCompartment">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZPLhZUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZPLhpUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <children xmi:type="notation:Shape" xmi:id="_XZPLh5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZPLiJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZPLiZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_FE7PwIvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZPLipUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZPLi5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZPLjJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZPLjZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_GM6ykIvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZPLjpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZPLj5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZPLkJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZPLkZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_IXWp0IvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZPLkpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZPLk5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZPLlJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZPLlZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_KEe6AIvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZPLlpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZPLl5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZPLmJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZPLmZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_LzG_AIvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZPLmpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZPLm5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZPLnJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZPLnZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_MmTWgIvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZPLnpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZPLn5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZPLoJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZPLoZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_Ndwi8IvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZPLopUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZPLo5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZPLpJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZPLpZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_OHKFQIvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZPLppUKEeqWd_6S3mbYXg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_XZPLp5UKEeqWd_6S3mbYXg" type="EnumerationLiteral_LiteralLabel">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XZPLqJUKEeqWd_6S3mbYXg" source="PapyrusCSSForceValue">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XZPLqZUKEeqWd_6S3mbYXg" key="mutable" value="true"/>
+ </eAnnotations>
+ <element xmi:type="uml:EnumerationLiteral" href="AIML.profile.uml#_O3f9EIvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_XZPLqpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_XZPLq5UKEeqWd_6S3mbYXg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_XZPLrJUKEeqWd_6S3mbYXg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_XZPLrZUKEeqWd_6S3mbYXg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XZPLrpUKEeqWd_6S3mbYXg"/>
+ </children>
+ <styles xmi:type="notation:CanonicalStyle" xmi:id="_XZPLr5UKEeqWd_6S3mbYXg"/>
+ <element xmi:type="uml:Enumeration" href="AIML.profile.uml#_AiQ84IvMEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XZPLs5UKEeqWd_6S3mbYXg" x="730" y="330"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_yrEacZUJEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_yrEacpUJEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_yrEac5UJEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_38DjAJT1Eeq5BK6mmo2rWg"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_38DjAJT1Eeq5BK6mmo2rWg"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_0Oxo4JUJEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Type of Data" measurementUnit="Pixel">
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_0Oxo4ZUJEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_0Oxo4pUJEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_0Oxo45UJEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Package" href="AIML.profile.uml#_-8tiUJT1Eeq5BK6mmo2rWg"/>
+ </styles>
+ <element xmi:type="uml:Package" href="AIML.profile.uml#_-8tiUJT1Eeq5BK6mmo2rWg"/>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_10d0UJUJEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Pooling_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_8sExCK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sExCa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sExCq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sExC68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sExDK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sExDa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sExDq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sExD68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sExEK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sExEa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sExEq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sExE68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_vkD30IVTEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sExF68WEeqhVOlV64dXmA" x="970" y="550"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sExGK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sExGa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sExGq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sExG68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sExHK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sExHa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sExHq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sExH68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sExIK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sExIa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sExIq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sExI68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_nMBrUIVSEeqvavUi0dxRAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sExJ68WEeqhVOlV64dXmA" x="490" y="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sExKK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sExKa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sExKq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sExK68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sExLK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sExLa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sExLq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sExL68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sExMK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sExMa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sExMq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sExM68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_sAviEIVTEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sExN68WEeqhVOlV64dXmA" x="1250" y="550"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sFYAK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sFYAa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sFYAq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sFYA68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sFYBK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sFYBa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sFYBq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sFYB68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sFYCK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sFYCa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sFYCq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sFYC68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_QF-D0IVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sFYD68WEeqhVOlV64dXmA" x="-150" y="990"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sFYGK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sFYGa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sFYGq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sFYG68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sFYHK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sFYHa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sFYHq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sFYH68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sFYIK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sFYIa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sFYIq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sFYI68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Y8sCUIVTEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sFYJ68WEeqhVOlV64dXmA" x="1430" y="550"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sFYOK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sFYOa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sFYOq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_8sFYO68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_tPrdkIVXEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sFYPK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sFYPa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_uGxdoIVXEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sFYPq8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sFYP68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sFYQK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sFYQa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sFYQq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sFYQ68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sFYRK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sFYRa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sFYRq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sFYR68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_rL8rQIVXEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sFYS68WEeqhVOlV64dXmA" x="-90" y="830"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sFYXK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sFYXa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sFYXq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_8sFYX68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_vvW-UIVSEeqvavUi0dxRAw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sFYYK8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sFYYa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sFYYq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sFYY68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sFYZK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sFYZa8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sFYZq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sFYZ68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sFYaK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sFYaa8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_spFw8IVSEeqvavUi0dxRAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sFYba8WEeqhVOlV64dXmA" x="1070" y="210"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sF_F68WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sF_GK8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sF_Ga8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_8sF_Gq8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_CkDW8IVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sF_G68WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sF_HK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sF_Ha8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sF_Hq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_H68WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sF_IK8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sF_Ia8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sF_Iq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sF_I68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_JK8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_qYSzAIVSEeqvavUi0dxRAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_KK8WEeqhVOlV64dXmA" x="330" y="210"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sF_Ma8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sF_Mq8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sF_M68WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_8sF_NK8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_K3ga4IVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sF_Na8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sF_Nq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sF_N68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sF_OK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_Oa8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sF_Oq8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sF_O68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sF_PK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sF_Pa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_Pq8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_H6da8IVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_Qq8WEeqhVOlV64dXmA" x="30" y="330"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sF_S68WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sF_TK8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sF_Ta8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sF_Tq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sF_T68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sF_UK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_Ua8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sF_Uq8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sF_U68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sF_VK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sF_Va8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_Vq8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_cdWFoIVTEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_Wq8WEeqhVOlV64dXmA" x="1570" y="550"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sF_Y68WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sF_ZK8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sF_Za8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sF_Zq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sF_Z68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sF_aK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_aa8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sF_aq8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sF_a68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sF_bK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sF_ba8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_bq8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_2J_tMIVXEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_cq8WEeqhVOlV64dXmA" x="90" y="990"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sF_c68WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sF_dK8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sF_da8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sF_dq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sF_d68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sF_eK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_ea8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sF_eq8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sF_e68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sF_fK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sF_fa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_fq8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_XxquwIVVEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_gq8WEeqhVOlV64dXmA" x="330" y="630"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sF_g68WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sF_hK8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sF_ha8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_8sF_hq8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_cdy_UIVYEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sF_h68WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sF_iK8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_dhzaAIVYEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sF_ia8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sF_iq8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_fG5IgIVYEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sF_i68WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sF_jK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sF_ja8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sF_jq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_j68WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sF_kK8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sF_ka8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sF_kq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sF_k68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_lK8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Y3zwEIVYEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sF_mK8WEeqhVOlV64dXmA" x="710" y="370"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sGmIK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sGmIa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sGmIq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_8sGmI68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Y5DYIIVWEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sGmJK8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sGmJa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sGmJq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sGmJ68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmKK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sGmKa8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sGmKq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sGmK68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sGmLK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmLa8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_TS3LsIVWEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmMa8WEeqhVOlV64dXmA" x="410" y="990"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sGmSq8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sGmS68WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sGmTK8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sGmTa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sGmTq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sGmT68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmUK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sGmUa8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sGmUq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sGmU68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sGmVK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmVa8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_b9-hsIVWEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmWa8WEeqhVOlV64dXmA" x="430" y="1130"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sGmWq8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sGmW68WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sGmXK8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sGmXa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sGmXq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sGmX68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmYK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sGmYa8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sGmYq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sGmY68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sGmZK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmZa8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_uVbhgIVTEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmaa8WEeqhVOlV64dXmA" x="1110" y="550"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sGmaq8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sGma68WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sGmbK8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sGmba8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sGmbq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sGmb68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmcK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sGmca8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sGmcq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sGmc68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sGmdK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmda8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ddho4IVWEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmea8WEeqhVOlV64dXmA" x="590" y="1130"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sGmeq8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sGme68WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sGmfK8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_8sGmfa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_mqeLgIVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sGmfq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sGmf68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_jxSQMKZ3EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sGmgK8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sGmga8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sGmgq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sGmg68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmhK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sGmha8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sGmhq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sGmh68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sGmiK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmia8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_h3EG4IVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmja8WEeqhVOlV64dXmA" x="-290" y="470"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sGmjq8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sGmj68WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sGmkK8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_8sGmka8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Ayj5QIVWEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sGmkq8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sGmk68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sGmlK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sGmla8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmlq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sGml68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sGmmK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sGmma8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sGmmq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmm68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_6bJEMIVVEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sGmn68WEeqhVOlV64dXmA" x="290" y="830" width="161" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sHNUK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sHNUa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sHNUq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_8sHNU68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_KnpSkIVXEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sHNVK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sHNVa8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_xBPDUKZ3EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sHNVq8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sHNV68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sHNWK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sHNWa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sHNWq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sHNW68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sHNXK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sHNXa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sHNXq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sHNX68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Cfb1UIVXEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sHNY68WEeqhVOlV64dXmA" x="10" y="650"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sHNdK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sHNda8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sHNdq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sHNd68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sHNeK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sHNea8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sHNeq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sHNe68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sHNfK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sHNfa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sHNfq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sHNf68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_1WhB0IVXEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sHNg68WEeqhVOlV64dXmA" x="-30" y="990"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sHNhK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sH0QK8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sH0Qa8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sH0Qq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sH0Q68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sH0RK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0Ra8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sH0Rq8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sH0R68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sH0SK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sH0Sa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0Sq8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_y5HSoIVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0Tq8WEeqhVOlV64dXmA" x="-150" y="650"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sH0T68WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sH0UK8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sH0Ua8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sH0Uq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sH0U68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sH0VK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0Va8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sH0Vq8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sH0V68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sH0WK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sH0Wa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0Wq8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_wYbekIVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0Xq8WEeqhVOlV64dXmA" x="-270" y="650"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sH0X68WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sH0YK8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sH0Ya8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_8sH0Yq8WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_3JChoIVSEeqvavUi0dxRAw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sH0Y68WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sH0ZK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sH0Za8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sH0Zq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0Z68WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sH0aK8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sH0aa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sH0aq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sH0a68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0bK8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_x9fp0IVSEeqvavUi0dxRAw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0cK8WEeqhVOlV64dXmA" x="1510" y="350"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sH0ea8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sH0eq8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sH0e68WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sH0fK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sH0fa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sH0fq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0f68WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sH0gK8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sH0ga8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sH0gq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sH0g68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0hK8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_aIzlQIVVEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0iK8WEeqhVOlV64dXmA" x="450" y="630"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sH0ia8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sH0iq8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sH0i68WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sH0jK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sH0ja8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sH0jq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0j68WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sH0kK8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sH0ka8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sH0kq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sH0k68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0lK8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_dQfZ0IVTEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sH0mK8WEeqhVOlV64dXmA" x="1710" y="550"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sIbWK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sIbWa8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sIbWq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sIbW68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sIbXK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sIbXa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sIbXq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sIbX68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sIbYK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sIbYa8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sIbYq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sIbY68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_VqZVsIVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sIbZ68WEeqhVOlV64dXmA" x="250" y="990"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sIbeK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sIbea8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sIbeq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sIbe68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sIbfK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sIbfa8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sIbfq8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sIbf68WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sIbgK8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sIbga8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sIbgq8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sIbg68WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_SVcMEIVUEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sIbh68WEeqhVOlV64dXmA" x="-390" y="650"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8sIbiK8WEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sIbia8WEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sIbiq8WEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_8sIbi68WEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_K5-DkIVVEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sIbjK8WEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sIbja8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sIbjq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sIbj68WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sIbkK8WEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8sIbka8WEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8sIbkq8WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8sIbk68WEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8sIblK8WEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sIbla8WEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_FjbcsIVVEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8sIbma8WEeqhVOlV64dXmA" x="390" y="490" width="181" height="81"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_10d0UZUJEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_10d0UpUJEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_10d0U5UJEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_Deu8AJT2Eeq5BK6mmo2rWg"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_7YfQoJm2Eeq8nv7tV9lOqQ" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_Deu8AJT2Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_8sEJ4K8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sExKK8WEeqhVOlV64dXmA" target="_8sFYXK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sEJ4a8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sEJ4q8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sEJ468WEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sEJ5K8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_7a4U0IVTEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sEJ5a8WEeqhVOlV64dXmA" points="[1290, 530, -643984, -643984]$[1210, 293, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sEJ5q8WEeqhVOlV64dXmA" id="(0.5084745762711864,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sEJ568WEeqhVOlV64dXmA" id="(0.8121827411167513,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sEw8K8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sIbiK8WEeqhVOlV64dXmA" target="_8sF_Ma8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sEw8a8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sEw8q8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sEw868WEeqhVOlV64dXmA" x="-155" y="96"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sEw9K8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_TaQCkIVVEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sEw9a8WEeqhVOlV64dXmA" points="[390, 470, -643984, -643984]$[70, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sEw9q8WEeqhVOlV64dXmA" id="(0.4419889502762431,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sEw968WEeqhVOlV64dXmA" id="(0.7228915662650602,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sEw-K8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sIbWK8WEeqhVOlV64dXmA" target="_8sGmjq8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sEw-a8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sEw-q8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sEw-68WEeqhVOlV64dXmA" x="1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sEw_K8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_geEBsIVWEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sEw_a8WEeqhVOlV64dXmA" points="[190, 970, -643984, -643984]$[250, 911, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sEw_q8WEeqhVOlV64dXmA" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sEw_68WEeqhVOlV64dXmA" id="(0.37267080745341613,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sExAK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sH0T68WEeqhVOlV64dXmA" target="_8sGmeq8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sExAa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sExAq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sExA68WEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sExBK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_2i3nkIVUEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sExBa8WEeqhVOlV64dXmA" points="[-250, 630, -643984, -643984]$[-230, 553, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sExBq8WEeqhVOlV64dXmA" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sExB68WEeqhVOlV64dXmA" id="(0.4419889502762431,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sExOK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sF_c68WEeqhVOlV64dXmA" target="_8sIbiK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sExOa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sExOq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sExO68WEeqhVOlV64dXmA" x="128" y="114"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sExPK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_dGXikIVVEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sExPa8WEeqhVOlV64dXmA" points="[350, 610, -643984, -643984]$[350, 551, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sExPq8WEeqhVOlV64dXmA" id="(0.8,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sExP68WEeqhVOlV64dXmA" id="(0.11049723756906077,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sFYEK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sGmjq8WEeqhVOlV64dXmA" target="_8sHNUK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sFYEa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sFYEq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sFYE68WEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sFYFK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_eWQLMIVXEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sFYFa8WEeqhVOlV64dXmA" points="[10, 810, -643984, -643984]$[90, 733, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sFYFq8WEeqhVOlV64dXmA" id="(0.4968944099378882,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sFYF68WEeqhVOlV64dXmA" id="(0.837696335078534,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sFYKK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sF_S68WEeqhVOlV64dXmA" target="_8sH0X68WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sFYKa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sFYKq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sFYK68WEeqhVOlV64dXmA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sFYLK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_hguf8IVTEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sFYLa8WEeqhVOlV64dXmA" points="[1610, 530, -643984, -643984]$[1610, 433, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sFYLq8WEeqhVOlV64dXmA" id="(0.46153846153846156,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sFYL68WEeqhVOlV64dXmA" id="(0.5687203791469194,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sFYMK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sGmSq8WEeqhVOlV64dXmA" target="_8sGmIK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sFYMa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sFYMq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sFYM68WEeqhVOlV64dXmA" x="67" y="98"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sFYNK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_e4Tk0IVWEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sFYNa8WEeqhVOlV64dXmA" points="[390, 1110, -643984, -643984]$[410, 1073, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sFYNq8WEeqhVOlV64dXmA" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sFYN68WEeqhVOlV64dXmA" id="(0.36363636363636365,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sFYTK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sGmWq8WEeqhVOlV64dXmA" target="_8sFYXK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sFYTa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sFYTq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sFYT68WEeqhVOlV64dXmA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sFYUK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_8DbikIVTEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sFYUa8WEeqhVOlV64dXmA" points="[1150, 530, -643984, -643984]$[1150, 293, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sFYUq8WEeqhVOlV64dXmA" id="(0.5084745762711864,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sFYU68WEeqhVOlV64dXmA" id="(0.5076142131979695,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sFYVK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sFYAK8WEeqhVOlV64dXmA" target="_8sFYOK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sFYVa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sFYVq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sFYV68WEeqhVOlV64dXmA" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sFYWK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_5a1L0IVXEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sFYWa8WEeqhVOlV64dXmA" points="[-130, 970, -643984, -643984]$[-70, 929, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sFYWq8WEeqhVOlV64dXmA" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sFYW68WEeqhVOlV64dXmA" id="(0.1895734597156398,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sFYbq8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sF_Y68WEeqhVOlV64dXmA" target="_8sFYOK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sF_EK8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sF_Ea8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sF_Eq8WEeqhVOlV64dXmA" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sF_E68WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_6loyEIVXEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sF_FK8WEeqhVOlV64dXmA" points="[130, 970, -643984, -643984]$[70, 929, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sF_Fa8WEeqhVOlV64dXmA" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sF_Fq8WEeqhVOlV64dXmA" id="(0.8530805687203792,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sF_Ka8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sFYOK8WEeqhVOlV64dXmA" target="_8sHNUK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sF_Kq8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sF_K68WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sF_LK8WEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sF_La8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_zKvGwIVXEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sF_Lq8WEeqhVOlV64dXmA" points="[-30, 810, -643984, -643984]$[70, 733, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sF_L68WEeqhVOlV64dXmA" id="(0.6635071090047393,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sF_MK8WEeqhVOlV64dXmA" id="(0.418848167539267,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sF_Q68WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sGmeq8WEeqhVOlV64dXmA" target="_8sF_Ma8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sF_RK8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sF_Ra8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sF_Rq8WEeqhVOlV64dXmA" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sF_R68WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_Ud9iUIVVEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sF_SK8WEeqhVOlV64dXmA" points="[-170, 450, -643984, -643984]$[30, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sF_Sa8WEeqhVOlV64dXmA" id="(0.7734806629834254,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sF_Sq8WEeqhVOlV64dXmA" id="(0.4819277108433735,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sF_W68WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sF_g68WEeqhVOlV64dXmA" target="_8sF_F68WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sF_XK8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sF_Xa8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sF_Xq8WEeqhVOlV64dXmA" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sF_X68WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_hzfRoIVYEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sF_YK8WEeqhVOlV64dXmA" points="[770, 450, -643984, -643984]$[470, 293, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sF_Ya8WEeqhVOlV64dXmA" id="(0.2843601895734597,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sF_Yq8WEeqhVOlV64dXmA" id="(0.8290155440414507,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sGmMq8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sGmaq8WEeqhVOlV64dXmA" target="_8sGmIK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sGmM68WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sGmNK8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sGmNa8WEeqhVOlV64dXmA" x="8" y="135"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sGmNq8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_fQk64IVWEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sGmN68WEeqhVOlV64dXmA" points="[550, 1110, -643984, -643984]$[510, 1073, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sGmOK8WEeqhVOlV64dXmA" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sGmOa8WEeqhVOlV64dXmA" id="(0.8181818181818182,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sGmOq8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sF_F68WEeqhVOlV64dXmA" target="_8sExGK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sGmO68WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sGmPK8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sGmPa8WEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sGmPq8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_DTFDUIVYEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sGmP68WEeqhVOlV64dXmA" points="[170, 170, -643984, -643984]$[510, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sGmQK8WEeqhVOlV64dXmA" id="(0.6217616580310881,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sGmQa8WEeqhVOlV64dXmA" id="(0.4,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sGmQq8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sExCK8WEeqhVOlV64dXmA" target="_8sFYXK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sGmQ68WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sGmRK8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sGmRa8WEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sGmRq8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_9Q2_AIVTEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sGmR68WEeqhVOlV64dXmA" points="[1010, 530, -643984, -643984]$[1090, 293, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sGmSK8WEeqhVOlV64dXmA" id="(0.5084745762711864,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sGmSa8WEeqhVOlV64dXmA" id="(0.20304568527918782,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sHNMK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sH0X68WEeqhVOlV64dXmA" target="_8sFYXK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sHNMa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sHNMq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sHNM68WEeqhVOlV64dXmA" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sHNNK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_i7emsIVTEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sHNNa8WEeqhVOlV64dXmA" points="[1590, 330, -643984, -643984]$[1230, 293, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sHNNq8WEeqhVOlV64dXmA" id="(0.47393364928909953,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sHNN68WEeqhVOlV64dXmA" id="(0.9137055837563451,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sHNOK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sFYGK8WEeqhVOlV64dXmA" target="_8sH0X68WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sHNOa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sHNOq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sHNO68WEeqhVOlV64dXmA" x="1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sHNPK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_g8dVQIVTEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sHNPa8WEeqhVOlV64dXmA" points="[1450, 530, -643984, -643984]$[1530, 433, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sHNPq8WEeqhVOlV64dXmA" id="(0.46153846153846156,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sHNP68WEeqhVOlV64dXmA" id="(0.1895734597156398,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sHNQK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sHNhK8WEeqhVOlV64dXmA" target="_8sGmeq8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sHNQa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sHNQq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sHNQ68WEeqhVOlV64dXmA" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sHNRK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_2DdHsIVUEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sHNRa8WEeqhVOlV64dXmA" points="[-110, 630, -643984, -643984]$[-170, 553, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sHNRq8WEeqhVOlV64dXmA" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sHNR68WEeqhVOlV64dXmA" id="(0.7734806629834254,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sHNSK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sGmIK8WEeqhVOlV64dXmA" target="_8sGmjq8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sHNSa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sHNSq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sHNS68WEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sHNTK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_f8tBEIVWEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sHNTa8WEeqhVOlV64dXmA" points="[410, 970, -643984, -643984]$[310, 911, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sHNTq8WEeqhVOlV64dXmA" id="(0.36363636363636365,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sHNT68WEeqhVOlV64dXmA" id="(0.7453416149068323,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sHNZK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sF_Ma8WEeqhVOlV64dXmA" target="_8sF_F68WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sHNZa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sHNZq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sHNZ68WEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sHNaK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_2P_c8IVWEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sHNaa8WEeqhVOlV64dXmA" points="[50, 310, -643984, -643984]$[130, 273, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sHNaq8WEeqhVOlV64dXmA" id="(0.6024096385542169,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sHNa68WEeqhVOlV64dXmA" id="(0.41450777202072536,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sHNbK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sIbeK8WEeqhVOlV64dXmA" target="_8sGmeq8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sHNba8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sHNbq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sHNb68WEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sHNcK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_3UmmgIVUEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sHNca8WEeqhVOlV64dXmA" points="[-360, 1360, -643984, -643984]$[-280, 1283, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sHNcq8WEeqhVOlV64dXmA" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sHNc68WEeqhVOlV64dXmA" id="(0.22099447513812154,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sH0ca8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sHNUK8WEeqhVOlV64dXmA" target="_8sGmeq8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sH0cq8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sH0c68WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sH0dK8WEeqhVOlV64dXmA" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sH0da8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_V3zYMIVXEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sH0dq8WEeqhVOlV64dXmA" points="[50, 630, -643984, -643984]$[-129, 510, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sH0d68WEeqhVOlV64dXmA" id="(0.31413612565445026,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sH0eK8WEeqhVOlV64dXmA" id="(1.0,0.5825242718446602)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sIbUK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sH0ia8WEeqhVOlV64dXmA" target="_8sH0X68WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sIbUa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sIbUq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sIbU68WEeqhVOlV64dXmA" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sIbVK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_iK5eUIVTEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sIbVa8WEeqhVOlV64dXmA" points="[1770, 530, -643984, -643984]$[1670, 433, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sIbVq8WEeqhVOlV64dXmA" id="(0.46153846153846156,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sIbV68WEeqhVOlV64dXmA" id="(0.8530805687203792,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sIbaK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sHNdK8WEeqhVOlV64dXmA" target="_8sFYOK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sIbaa8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sIbaq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sIba68WEeqhVOlV64dXmA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sIbbK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_6B2IgIVXEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sIbba8WEeqhVOlV64dXmA" points="[10, 970, -643984, -643984]$[10, 929, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sIbbq8WEeqhVOlV64dXmA" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sIbb68WEeqhVOlV64dXmA" id="(0.5687203791469194,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sIbcK8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sH0ea8WEeqhVOlV64dXmA" target="_8sIbiK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sIbca8WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sIbcq8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sIbc68WEeqhVOlV64dXmA" x="120" y="131"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sIbdK8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_dg9M0IVVEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sIbda8WEeqhVOlV64dXmA" points="[450, 610, -643984, -643984]$[450, 551, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sIbdq8WEeqhVOlV64dXmA" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sIbd68WEeqhVOlV64dXmA" id="(0.4419889502762431,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8sIbmq8WEeqhVOlV64dXmA" type="Generalization_Edge" source="_8sFYXK8WEeqhVOlV64dXmA" target="_8sExGK8WEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8sIbm68WEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_8sIbnK8WEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8sIbna8WEeqhVOlV64dXmA" x="-633" y="148"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8sIbnq8WEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_CV1X8IVYEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8sIbn68WEeqhVOlV64dXmA" points="[830, 170, -643984, -643984]$[550, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sIboK8WEeqhVOlV64dXmA" id="(0.5076142131979695,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8sIboa8WEeqhVOlV64dXmA" id="(0.8,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_3ORf4JUJEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Padding_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_cE3XsJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE3XsZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE3XspULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE3Xs5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE3XtJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE3XtZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE3XtpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE3Xt5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE3XuJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE3XuZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE3XupULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE3Xu5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_okP-UIVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE3Xv5ULEeqfMc95BD27pw" x="1090" y="310"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cE3-wJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE3-wZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE3-wpULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_cE3-w5ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_UZswkIVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cE3-xJULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE3-xZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE3-xpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE3-x5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE3-yJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE3-yZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE3-ypULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE3-y5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE3-zJULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE3-zZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_w6iwUIVYEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE3-0ZULEeqfMc95BD27pw" x="630" y="90"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cE4l0JULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE4l0ZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE4l0pULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE4l05ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE4l1JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE4l1ZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE4l1pULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE4l15ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE4l2JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE4l2ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE4l2pULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE4l25ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_cIwG8IVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE4l35ULEeqfMc95BD27pw" x="410" y="310"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cE5z8ZULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE5z8pULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE5z85ULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE5z9JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE5z9ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE5z9pULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE5z95ULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE5z-JULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE5z-ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE5z-pULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE5z-5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE5z_JULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_fdB7IIVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE50AJULEeqfMc95BD27pw" x="550" y="310"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cE50AZULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE50ApULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE50A5ULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE50BJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE50BZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE50BpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE50B5ULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE50CJULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE50CZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE50CpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE50C5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE50DJULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_aphv4IVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE50EJULEeqfMc95BD27pw" x="270" y="310"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cE6bAJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE6bAZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE6bApULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE6bA5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE6bBJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE6bBZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE6bBpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE6bB5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE6bCJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE6bCZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE6bCpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE6bC5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_sNFGMIVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE6bD5ULEeqfMc95BD27pw" x="1230" y="310"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cE7CIJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE7CIZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE7CIpULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE7CI5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE7CJJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE7CJZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE7CJpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE7CJ5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE7CKJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE7CKZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE7CKpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE7CK5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_gxtPEIVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE7CL5ULEeqfMc95BD27pw" x="690" y="310"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cE7pIJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE7pIZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE7pIpULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE7pI5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE7pJJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE7pJZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE7pJpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE7pJ5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE7pKJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE7pKZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE7pKpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE7pK5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_kjrr4IVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE7pL5ULEeqfMc95BD27pw" x="830" y="310"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cE7pOZULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE7pOpULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE7pO5ULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE7pPJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE7pPZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE7pPpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE7pP5ULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE7pQJULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE7pQZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE7pQpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE7pQ5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE7pRJULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_mNvZ8IVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE7pSJULEeqfMc95BD27pw" x="970" y="310"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cE83QZULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE83QpULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE83Q5ULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE83RJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE83RZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE83RpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE83R5ULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cE83SJULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cE83SZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cE83SpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cE83S5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE83TJULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_YlZU8IVZEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cE83UJULEeqfMc95BD27pw" x="130" y="310"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_3ORf4ZUJEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_3ORf4pUJEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_3ORf45UJEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_2_xEcJT2Eeq5BK6mmo2rWg"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_2_xEcJT2Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_cE5M4JULEeqfMc95BD27pw" type="Generalization_Edge" source="_cE4l0JULEeqfMc95BD27pw" target="_cE3-wJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE5M4ZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cE5M4pULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cE5M45ULEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cE5M5JULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_2srRkIVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cE5M5ZULEeqfMc95BD27pw" points="[450, 290, -643984, -643984]$[650, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE5M5pULEeqfMc95BD27pw" id="(0.5714285714285714,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE5M55ULEeqfMc95BD27pw" id="(0.272108843537415,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cE5M6ZULEeqfMc95BD27pw" type="Generalization_Edge" source="_cE3XsJULEeqfMc95BD27pw" target="_cE3-wJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE5M6pULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cE5M65ULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cE5M7JULEeqfMc95BD27pw" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cE5M7ZULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_7KBmoIVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cE5M7pULEeqfMc95BD27pw" points="[1130, 290, -643984, -643984]$[730, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE5M75ULEeqfMc95BD27pw" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE5M8JULEeqfMc95BD27pw" id="(0.8163265306122449,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cE6bEJULEeqfMc95BD27pw" type="Generalization_Edge" source="_cE5z8ZULEeqfMc95BD27pw" target="_cE3-wJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE6bEZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cE6bEpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cE6bE5ULEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cE6bFJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_3Rpm4IVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cE6bFZULEeqfMc95BD27pw" points="[590, 290, -643984, -643984]$[650, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE6bFpULEeqfMc95BD27pw" id="(0.5714285714285714,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE6bF5ULEeqfMc95BD27pw" id="(0.272108843537415,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cE7CEJULEeqfMc95BD27pw" type="Generalization_Edge" source="_cE50AZULEeqfMc95BD27pw" target="_cE3-wJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE7CEZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cE7CEpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cE7CE5ULEeqfMc95BD27pw" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cE7CFJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_0IHqIIVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cE7CFZULEeqfMc95BD27pw" points="[310, 290, -643984, -643984]$[630, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE7CFpULEeqfMc95BD27pw" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE7CF5ULEeqfMc95BD27pw" id="(0.1360544217687075,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cE7CGJULEeqfMc95BD27pw" type="Generalization_Edge" source="_cE83QZULEeqfMc95BD27pw" target="_cE3-wJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE7CGZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cE7CGpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cE7CG5ULEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cE7CHJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_zJF2EIVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cE7CHZULEeqfMc95BD27pw" points="[150, 290, -643984, -643984]$[630, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE7CHpULEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE7CH5ULEeqfMc95BD27pw" id="(0.1360544217687075,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cE7pMJULEeqfMc95BD27pw" type="Generalization_Edge" source="_cE7pOZULEeqfMc95BD27pw" target="_cE3-wJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE7pMZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cE7pMpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cE7pM5ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cE7pNJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_6g_QsIVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cE7pNZULEeqfMc95BD27pw" points="[1010, 290, -643984, -643984]$[730, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE7pNpULEeqfMc95BD27pw" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE7pN5ULEeqfMc95BD27pw" id="(0.8163265306122449,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cE8QMJULEeqfMc95BD27pw" type="Generalization_Edge" source="_cE7CIJULEeqfMc95BD27pw" target="_cE3-wJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE8QMZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cE8QMpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cE8QM5ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cE8QNJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_4uA3MIVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cE8QNZULEeqfMc95BD27pw" points="[730, 290, -643984, -643984]$[650, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE8QNpULEeqfMc95BD27pw" id="(0.5714285714285714,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE8QN5ULEeqfMc95BD27pw" id="(0.272108843537415,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cE8QOJULEeqfMc95BD27pw" type="Generalization_Edge" source="_cE7pIJULEeqfMc95BD27pw" target="_cE3-wJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE8QOZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cE8QOpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cE8QO5ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cE8QPJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_5Tm3kIVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cE8QPZULEeqfMc95BD27pw" points="[870, 290, -643984, -643984]$[690, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE8QPpULEeqfMc95BD27pw" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE8QP5ULEeqfMc95BD27pw" id="(0.54421768707483,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_cE8QQJULEeqfMc95BD27pw" type="Generalization_Edge" source="_cE6bAJULEeqfMc95BD27pw" target="_cE3-wJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cE8QQZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cE8QQpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cE8QQ5ULEeqfMc95BD27pw" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cE8QRJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_7vcA0IVZEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cE8QRZULEeqfMc95BD27pw" points="[1270, 290, -643984, -643984]$[730, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE8QRpULEeqfMc95BD27pw" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cE8QR5ULEeqfMc95BD27pw" id="(0.8163265306122449,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_43OasJUJEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Non-linear_activations_(weighted sum, nonlinearity)" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_kUJtUJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUJtUZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUJtUpULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUJtU5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUJtVJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUJtVZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUJtVpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUJtV5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUJtWJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUJtWZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUJtWpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUJtW5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_-FB30IVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUJtX5ULEeqfMc95BD27pw" x="2090" y="350"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUK7eJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUK7eZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUK7epULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUK7e5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUK7fJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUK7fZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUK7fpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUK7f5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUK7gJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUK7gZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUK7gpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUK7g5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_T9yJQIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUK7h5ULEeqfMc95BD27pw" x="1450" y="510"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kULiiJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kULiiZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kULiipULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kULii5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kULijJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kULijZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kULijpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kULij5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kULikJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kULikZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kULikpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kULik5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ef3LcIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kULil5ULEeqfMc95BD27pw" x="3230" y="350"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUMJmJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUMJmZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUMJmpULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_kUMJm5ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_MoLDEIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUMJnJULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUMJnZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUMJnpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUMJn5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUMJoJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUMJoZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUMJopULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUMJo5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUMJpJULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUMJpZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_FFiYEIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUMJqZULEeqfMc95BD27pw" x="30" y="510"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUMJqpULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUMJq5ULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUMJrJULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUMJrZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUMJrpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUMJr5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUMJsJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUMJsZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUMJspULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUMJs5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUMJtJULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUMJtZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Q694gIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUMJuZULEeqfMc95BD27pw" x="1330" y="510"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUMwoJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUMwoZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUMwopULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_kUMwo5ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_H7n-8IVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUMwpJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUMwpZULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_J_NnUIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUMwppULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUMwp5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUMwqJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUMwqZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUMwqpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUMwq5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUMwrJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUMwrZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUMwrpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUMwr5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_FyhkcIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUMws5ULEeqfMc95BD27pw" x="2690" y="350"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUNXsJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUNXsZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUNXspULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUNXs5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUNXtJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUNXtZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUNXtpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUNXt5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUNXuJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUNXuZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUNXupULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUNXu5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_dgIz0IVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUNXv5ULEeqfMc95BD27pw" x="2950" y="350"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUN-wJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUN-wZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUN-wpULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_kUN-w5ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_QsGykIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUN-xJULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUN-xZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUN-xpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUN-x5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUN-yJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUN-yZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUN-ypULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUN-y5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUN-zJULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUN-zZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_O0zSsIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUN-0ZULEeqfMc95BD27pw" x="1670" y="330"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUN-65ULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUN-7JULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUN-7ZULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_kUN-7pULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_vrowYIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUN-75ULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUN-8JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUN-8ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUN-8pULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUN-85ULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUN-9JULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUN-9ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUN-9pULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUN-95ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUN--JULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_uYqFkIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUN-_JULEeqfMc95BD27pw" x="990" y="510"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUN-_ZULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUN-_pULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUN-_5ULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_kUN_AJULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_FZhZIIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUN_AZULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUN_ApULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_KHN3UIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUN_A5ULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUN_BJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUN_BZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUN_BpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUN_B5ULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUN_CJULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUN_CZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUN_CpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUN_C5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUN_DJULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_AXPyEIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUN_EJULEeqfMc95BD27pw" x="1890" y="350"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUOl2JULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUOl2ZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUOl2pULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUOl25ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUOl3JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUOl3ZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUOl3pULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUOl35ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUOl4JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUOl4ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUOl4pULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUOl45ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_hnumMIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUOl55ULEeqfMc95BD27pw" x="2330" y="350"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUOl6JULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUOl6ZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUOl6pULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUOl65ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUOl7JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUOl7ZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUOl7pULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUOl75ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUOl8JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUOl8ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUOl8pULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUOl85ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_PQkzQIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUOl95ULEeqfMc95BD27pw" x="1210" y="510"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUOmAJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUOmAZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUOmApULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUOmA5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUOmBJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUOmBZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUOmBpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUOmB5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUOmCJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUOmCZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUOmCpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUOmC5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#__HL4YIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUOmD5ULEeqfMc95BD27pw" x="2210" y="350"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUOmEZULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUOmEpULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUOmE5ULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_kUOmFJULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_pyKbkIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUOmFZULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUOmFpULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_qj-TAIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUOmF5ULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUOmGJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUOmGZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUOmGpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUOmG5ULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUOmHJULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUOmHZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUOmHpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUOmH5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUOmIJULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_oPGGUIVcEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUOmJJULEeqfMc95BD27pw" x="490" y="510"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUPM4JULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUPM4ZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUPM4pULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_kUPM45ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_oCRnwIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUPM5JULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUPM5ZULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_pXDCUIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUPM5pULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUPM55ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_qHZhMIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUPM6JULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUPM6ZULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_qxdK0IVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUPM6pULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUPM65ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_rp_8YIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUPM7JULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUPM7ZULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_uscZsIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUPM7pULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUPM75ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_wd6XUIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUPM8JULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUPM8ZULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_w_bI8IVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUPM8pULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUPM85ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUPM9JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUPM9ZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUPM9pULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUPM95ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUPM-JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUPM-ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUPM-pULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUPM-5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_mNXUkIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUPM_5ULEeqfMc95BD27pw" x="2449" y="353"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUPz8JULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUPz8ZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUPz8pULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_kUPz85ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Ki9qEIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUPz9JULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUPz9ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUPz9pULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUPz95ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUPz-JULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUPz-ZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUPz-pULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUPz-5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUPz_JULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUPz_ZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Im3JwIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUP0AZULEeqfMc95BD27pw" x="710" y="330"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUP0ApULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUP0A5ULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUP0BJULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUP0BZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUP0BpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUP0B5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUP0CJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUP0CZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUP0CpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUP0C5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUP0DJULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUP0DZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Tr5SkIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUP0EZULEeqfMc95BD27pw" x="1650" y="510"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUP0GpULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUP0G5ULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUP0HJULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUP0HZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUP0HpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUP0H5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUP0IJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUP0IZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUP0IpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUP0I5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUP0JJULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUP0JZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_AwFawIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUP0KZULEeqfMc95BD27pw" x="1570" y="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUQbAJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUQbAZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUQbApULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUQbA5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUQbBJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUQbBZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUQbBpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUQbB5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUQbCJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUQbCZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUQbCpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUQbC5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_kIQXUIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUQbD5ULEeqfMc95BD27pw" x="3090" y="350"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUQbGZULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUQbGpULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUQbG5ULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_kUQbHJULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_6bNcAIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUQbHZULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUQbHpULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_7aGGIIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUQbH5ULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUQbIJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUQbIZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUQbIpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUQbI5ULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUQbJJULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUQbJZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUQbJpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUQbJ5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUQbKJULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_4wdxcIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUQbLJULEeqfMc95BD27pw" x="730" y="510"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kUQbLpULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUQbL5ULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUQbMJULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUQbMZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUQbMpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUQbM5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUQbNJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kUQbNZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kUQbNpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kUQbN5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kUQbOJULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUQbOZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Q1o3IIVdEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kUQbPZULEeqfMc95BD27pw" x="1784" y="507"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_kURCEJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kURCEZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kURCEpULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_kURCE5ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_VlPEsIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kURCFJULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kURCFZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kURCFpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kURCF5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kURCGJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kURCGZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kURCGpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kURCG5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kURCHJULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kURCHZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_T1MDYIVbEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kURCIZULEeqfMc95BD27pw" x="230" y="510"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_43OasZUJEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_43OaspUJEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_43Oas5UJEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_H7fbMJT2Eeq5BK6mmo2rWg"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_C6QOkJnbEeqZJ7Fgbu454w" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_H7fbMJT2Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_kUIfMJULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUN-wJULEeqfMc95BD27pw" target="_kUP0GpULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUIfMZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUIfMpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUIfM5ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUIfNJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_Kab40IVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUIfNZULEeqfMc95BD27pw" points="[1730, 310, -643984, -643984]$[1590, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUIfNpULEeqfMc95BD27pw" id="(0.4678362573099415,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUIfN5ULEeqfMc95BD27pw" id="(0.1384083044982699,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUKUYJULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUQbAJULEeqfMc95BD27pw" target="_kUP0GpULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUKUYZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUKUYpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUKUY5ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUKUZJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_dbS6oIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUKUZZULEeqfMc95BD27pw" points="[3110, 330, -643984, -643984]$[1810, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUKUZpULEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUKUZ5ULEeqfMc95BD27pw" id="(0.8996539792387543,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUK7cJULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUMwoJULEeqfMc95BD27pw" target="_kUP0GpULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUK7cZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUK7cpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUK7c5ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUK7dJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_fZNY0IVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUK7dZULEeqfMc95BD27pw" points="[2750, 330, -643984, -643984]$[1810, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUK7dpULEeqfMc95BD27pw" id="(0.35398230088495575,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUK7d5ULEeqfMc95BD27pw" id="(0.8996539792387543,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kULigJULEeqfMc95BD27pw" type="Generalization_Edge" source="_kULiiJULEeqfMc95BD27pw" target="_kUP0GpULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kULigZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kULigpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kULig5ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kULihJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_bY_rsIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kULihZULEeqfMc95BD27pw" points="[3270, 330, -643984, -643984]$[1810, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kULihpULEeqfMc95BD27pw" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kULih5ULEeqfMc95BD27pw" id="(0.8996539792387543,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUMJkJULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUMJmJULEeqfMc95BD27pw" target="_kUPz8JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUMJkZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUMJkpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUMJk5ULEeqfMc95BD27pw" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUMJlJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_ckA0sIVbEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUMJlZULEeqfMc95BD27pw" points="[170, 490, -643984, -643984]$[230, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUMJlpULEeqfMc95BD27pw" id="(0.6024096385542169,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUMJl5ULEeqfMc95BD27pw" id="(0.0664451827242525,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUMwtZULEeqfMc95BD27pw" type="Generalization_Edge" source="_kURCEJULEeqfMc95BD27pw" target="_kUPz8JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUMwtpULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUMwt5ULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUMwuJULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUMwuZULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_dEj9AIVbEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUMwupULEeqfMc95BD27pw" points="[410, 490, -643984, -643984]$[370, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUMwu5ULEeqfMc95BD27pw" id="(0.18604651162790697,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUMwvJULEeqfMc95BD27pw" id="(0.39867109634551495,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUNXwJULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUNXsJULEeqfMc95BD27pw" target="_kUP0GpULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUNXwZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUNXwpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUNXw5ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUNXxJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_esL6wIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUNXxZULEeqfMc95BD27pw" points="[2970, 330, -643984, -643984]$[1810, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUNXxpULEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUNXx5ULEeqfMc95BD27pw" id="(0.8996539792387543,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUNXyJULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUK7eJULEeqfMc95BD27pw" target="_kUPz8JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUNXyZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUNXypULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUNXy5ULEeqfMc95BD27pw" x="-37" y="65"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUNXzJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_X3PuIIVcEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUNXzZULEeqfMc95BD27pw" points="[1330, 490, -643984, -643984]$[950, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUNXzpULEeqfMc95BD27pw" id="(0.2,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUNXz5ULEeqfMc95BD27pw" id="(0.8637873754152824,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUNX0JULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUPM4JULEeqfMc95BD27pw" target="_kUP0GpULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUNX0ZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUNX0pULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUNX05ULEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUNX1JULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_gMwVoIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUNX1ZULEeqfMc95BD27pw" points="[2510, 333, -643984, -643984]$[1790, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUNX1pULEeqfMc95BD27pw" id="(0.38571428571428573,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUNX15ULEeqfMc95BD27pw" id="(0.8304498269896193,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUNX2JULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUJtUJULEeqfMc95BD27pw" target="_kUP0GpULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUNX2ZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUNX2pULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUNX25ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUNX3JULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_SfSgEIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUNX3ZULEeqfMc95BD27pw" points="[2110, 330, -643984, -643984]$[1650, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUNX3pULEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUNX35ULEeqfMc95BD27pw" id="(0.3460207612456747,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUN-0pULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUMJqpULEeqfMc95BD27pw" target="_kUPz8JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUN-05ULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUN-1JULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUN-1ZULEeqfMc95BD27pw" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUN-1pULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_XLnXMIVcEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUN-15ULEeqfMc95BD27pw" points="[1250, 490, -643984, -643984]$[950, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUN-2JULEeqfMc95BD27pw" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUN-2ZULEeqfMc95BD27pw" id="(0.8637873754152824,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUN-2pULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUOmEZULEeqfMc95BD27pw" target="_kUPz8JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUN-25ULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUN-3JULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUN-3ZULEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUN-3pULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_yH-P8IVcEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUN-35ULEeqfMc95BD27pw" points="[570, 490, -643984, -643984]$[570, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUN-4JULEeqfMc95BD27pw" id="(0.5952380952380952,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUN-4ZULEeqfMc95BD27pw" id="(0.53156146179402,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUN-45ULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUOmAJULEeqfMc95BD27pw" target="_kUP0GpULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUN-5JULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUN-5ZULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUN-5pULEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUN-55ULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_heXHcIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUN-6JULEeqfMc95BD27pw" points="[2230, 330, -643984, -643984]$[1750, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUN-6ZULEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUN-6pULEeqfMc95BD27pw" id="(0.6920415224913494,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUOl0JULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUQbLpULEeqfMc95BD27pw" target="_kUN-wJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUOl0ZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUOl0pULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUOl05ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUOl1JULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_WoPu8IVdEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUOl1ZULEeqfMc95BD27pw" points="[1810, 487, -643984, -643984]$[1750, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUOl1pULEeqfMc95BD27pw" id="(0.46,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUOl15ULEeqfMc95BD27pw" id="(0.5847953216374269,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUOl-JULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUOl2JULEeqfMc95BD27pw" target="_kUP0GpULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUOl-ZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUOl-pULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUOl-5ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUOl_JULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_g0PMYIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUOl_ZULEeqfMc95BD27pw" points="[2350, 330, -643984, -643984]$[1770, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUOl_pULEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUOl_5ULEeqfMc95BD27pw" id="(0.7612456747404844,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUPNAJULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUN-_ZULEeqfMc95BD27pw" target="_kUP0GpULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUPNAZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUPNApULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUPNA5ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUPNBJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_LicCsIVeEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUPNBZULEeqfMc95BD27pw" points="[1910, 330, -643984, -643984]$[1630, 130, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUPNBpULEeqfMc95BD27pw" id="(0.21390374331550802,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUPNB5ULEeqfMc95BD27pw" id="(0.2768166089965398,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUPNCZULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUPz8JULEeqfMc95BD27pw" target="_kUP0GpULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUPNCpULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUPNC5ULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUPNDJULEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUPNDZULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_dfBEYIVbEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUPNDpULEeqfMc95BD27pw" points="[310, 310, -643984, -643984]$[390, 270, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUPND5ULEeqfMc95BD27pw" id="(0.5980066445182725,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUPNEJULEeqfMc95BD27pw" id="(0.0,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUPNEZULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUP0ApULEeqfMc95BD27pw" target="_kUN-wJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUPNEpULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUPNE5ULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUPNFJULEeqfMc95BD27pw" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUPNFZULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_WKteYIVdEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUPNFpULEeqfMc95BD27pw" points="[1670, 490, -643984, -643984]$[1710, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUPNF5ULEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUPNGJULEeqfMc95BD27pw" id="(0.3508771929824561,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUPNGpULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUQbGZULEeqfMc95BD27pw" target="_kUPz8JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUPNG5ULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUPNHJULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUPNHZULEeqfMc95BD27pw" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUPNHpULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_8qf-EIVdEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUPNH5ULEeqfMc95BD27pw" points="[810, 490, -643984, -643984]$[870, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUPNIJULEeqfMc95BD27pw" id="(0.5347593582887701,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUPNIZULEeqfMc95BD27pw" id="(0.5980066445182725,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUP0EpULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUN-65ULEeqfMc95BD27pw" target="_kUPz8JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUP0E5ULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUP0FJULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUP0FZULEeqfMc95BD27pw" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUP0FpULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_ymuBcIVcEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUP0F5ULEeqfMc95BD27pw" points="[1070, 490, -643984, -643984]$[910, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUP0GJULEeqfMc95BD27pw" id="(0.6024096385542169,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUP0GZULEeqfMc95BD27pw" id="(0.7308970099667774,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_kUQbEJULEeqfMc95BD27pw" type="Generalization_Edge" source="_kUOl6JULEeqfMc95BD27pw" target="_kUPz8JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kUQbEZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_kUQbEpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kUQbE5ULEeqfMc95BD27pw" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_kUQbFJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_WsaSsIVcEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kUQbFZULEeqfMc95BD27pw" points="[1110, 490, -643984, -643984]$[950, 413, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUQbFpULEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kUQbF5ULEeqfMc95BD27pw" id="(0.8637873754152824,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_6JCn4JUJEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Non-linear_activations_(other)" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_y2OPoJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y2OPoZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y2OPopULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y2OPo5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y2OPpJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y2OPpZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2OPppULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y2OPp5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y2OPqJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y2OPqZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y2OPqpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2OPq5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_n_v7YIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2OPr5ULEeqfMc95BD27pw" x="-410" y="190"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y2PdwJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y2PdwZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y2PdwpULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y2Pdw5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y2PdxJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y2PdxZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2PdxpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y2Pdx5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y2PdyJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y2PdyZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y2PdypULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2Pdy5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_lbyw4IVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2Pdz5ULEeqfMc95BD27pw" x="-830" y="390"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y2Qr4JULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y2Qr4ZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y2Qr4pULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_y2Qr45ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_zzHbwIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y2Qr5JULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y2Qr5ZULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_09lDwIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y2Qr5pULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y2Qr55ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_1jP8oIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y2Qr6JULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y2Qr6ZULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_2sVroIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y2Qr6pULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y2Qr65ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_3ZGrAIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y2Qr7JULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y2Qr7ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y2Qr7pULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y2Qr75ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2Qr8JULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y2Qr8ZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y2Qr8pULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y2Qr85ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y2Qr9JULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2Qr9ZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_vpbpkIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2Qr-ZULEeqfMc95BD27pw" x="-250" y="190"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y2R6CZULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y2R6CpULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y2R6C5ULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y2R6DJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y2R6DZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y2R6DpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2R6D5ULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y2R6EJULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y2R6EZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y2R6EpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y2R6E5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2R6FJULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_nBjNwIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2R6GJULEeqfMc95BD27pw" x="-710" y="390"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y2ShEJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y2ShEZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y2ShEpULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y2ShE5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y2ShFJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y2ShFZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2ShFpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y2ShF5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y2ShGJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y2ShGZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y2ShGpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2ShG5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_HyCdwIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2ShH5ULEeqfMc95BD27pw" x="-630" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y2TIKJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y2TIKZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y2TIKpULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y2TIK5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y2TILJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y2TILZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2TILpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y2TIL5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y2TIMJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y2TIMZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y2TIMpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2TIM5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_qeP-IIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2TIN5ULEeqfMc95BD27pw" x="-590" y="390"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_y2TvMJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y2TvMZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y2TvMpULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_y2TvM5ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_f3_xIIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y2TvNJULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y2TvNZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y2TvNpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y2TvN5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2TvOJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_y2TvOZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_y2TvOpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_y2TvO5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_y2TvPJULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2TvPZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_en-TsIVfEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_y2TvQZULEeqfMc95BD27pw" x="-730" y="190"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_6JCn4ZUJEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_6JCn4pUJEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_6JCn45UJEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_K1H6wJT2Eeq5BK6mmo2rWg"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_K1H6wJT2Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_y2QE0JULEeqfMc95BD27pw" type="Generalization_Edge" source="_y2TvMJULEeqfMc95BD27pw" target="_y2ShEJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y2QE0ZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_y2QE0pULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y2QE05ULEeqfMc95BD27pw" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_y2QE1JULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_98A-YIVfEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_y2QE1ZULEeqfMc95BD27pw" points="[-630, 170, -643984, -643984]$[-610, 90, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y2QE1pULEeqfMc95BD27pw" id="(0.6486486486486487,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y2QE15ULEeqfMc95BD27pw" id="(0.23121387283236994,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_y2RS8JULEeqfMc95BD27pw" type="Generalization_Edge" source="_y2Qr4JULEeqfMc95BD27pw" target="_y2ShEJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y2RS8ZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_y2RS8pULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y2RS85ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_y2RS9JULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_8okZgIVfEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_y2RS9ZULEeqfMc95BD27pw" points="[-170, 170, -643984, -643984]$[-510, 90, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y2RS9pULEeqfMc95BD27pw" id="(0.5154639175257731,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y2RS95ULEeqfMc95BD27pw" id="(0.8092485549132948,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_y2RS-JULEeqfMc95BD27pw" type="Generalization_Edge" source="_y2TIKJULEeqfMc95BD27pw" target="_y2TvMJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y2RS-ZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_y2RS-pULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y2RS-5ULEeqfMc95BD27pw" x="-1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_y2RS_JULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_-m_OAIVfEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_y2RS_ZULEeqfMc95BD27pw" points="[-550, 370, -643984, -643984]$[-610, 273, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y2RS_pULEeqfMc95BD27pw" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y2RS_5ULEeqfMc95BD27pw" id="(0.7567567567567568,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_y2R6AJULEeqfMc95BD27pw" type="Generalization_Edge" source="_y2PdwJULEeqfMc95BD27pw" target="_y2TvMJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y2R6AZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_y2R6ApULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y2R6A5ULEeqfMc95BD27pw" x="24" y="118"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_y2R6BJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#__rKAwIVfEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_y2R6BZULEeqfMc95BD27pw" points="[-790, 370, -643984, -643984]$[-710, 273, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y2R6BpULEeqfMc95BD27pw" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y2R6B5ULEeqfMc95BD27pw" id="(0.21621621621621623,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_y2TIIJULEeqfMc95BD27pw" type="Generalization_Edge" source="_y2OPoJULEeqfMc95BD27pw" target="_y2ShEJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y2TIIZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_y2TIIpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y2TII5ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_y2TIJJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_9EA_YIVfEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_y2TIJZULEeqfMc95BD27pw" points="[-390, 170, -643984, -643984]$[-530, 90, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y2TIJpULEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y2TIJ5ULEeqfMc95BD27pw" id="(0.6936416184971098,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_y2TIOJULEeqfMc95BD27pw" type="Generalization_Edge" source="_y2R6CZULEeqfMc95BD27pw" target="_y2TvMJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y2TIOZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_y2TIOpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y2TIO5ULEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_y2TIPJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#__G9ukIVfEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_y2TIPZULEeqfMc95BD27pw" points="[-670, 370, -643984, -643984]$[-670, 273, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y2TIPpULEeqfMc95BD27pw" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y2TIP5ULEeqfMc95BD27pw" id="(0.43243243243243246,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_7PFC4JUJEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Normalization_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="__By0oJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__By0oZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__By0opULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="__By0o5ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_KI-OAIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__By0pJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__By0pZULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_OsXgsIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__By0ppULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="__By0p5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__By0qJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__By0qZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__By0qpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__By0q5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__By0rJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__By0rZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__By0rpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__By0r5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_GstigIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__By0s5ULEeqfMc95BD27pw" x="10" y="-750"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B0p0JULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B0p0ZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B0p0pULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="__B0p05ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_iVdAIIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B0p1JULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B0p1ZULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ygFbsIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B0p1pULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B0p15ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_2tKgIIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B0p2JULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B0p2ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B0p2pULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B0p25ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B0p3JULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B0p3ZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B0p3pULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B0p35ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B0p4JULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B0p4ZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_fbbfAIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B0p5ZULEeqfMc95BD27pw" x="950" y="-590"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B0p5pULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B0p55ULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B0p6JULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="__B0p6ZULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_gvtxYIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B0p6pULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B0p65ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B0p7JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B0p7ZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B0p7pULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B0p75ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B0p8JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B0p8ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B0p8pULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B0p85ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_bf7SwIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B0p95ULEeqfMc95BD27pw" x="330" y="-750"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B1Q6ZULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B1Q6pULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B1Q65ULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B1Q7JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B1Q7ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B1Q7pULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B1Q75ULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B1Q8JULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B1Q8ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B1Q8pULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B1Q85ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B1Q9JULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_BDZUIIViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B1Q-JULEeqfMc95BD27pw" x="510" y="-370"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B138JULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B138ZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B138pULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B1385ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B139JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B139ZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B139pULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B1395ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B13-JULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B13-ZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B13-pULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B13-5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_OF6vQIViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B13_5ULEeqfMc95BD27pw" x="1210" y="-370"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B14AJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B14AZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B14ApULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="__B14A5ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_mNNU0IVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B14BJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B14BZULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_njZrsIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B14BpULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B14B5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B14CJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B14CZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B14CpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B14C5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B14DJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B14DZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B14DpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B14D5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_kVSw8IVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B14E5ULEeqfMc95BD27pw" x="270" y="-590"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B14FJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B14FZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B14FpULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B14F5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B14GJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B14GZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B14GpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B14G5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B14HJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B14HZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B14HpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B14H5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_SiGmsIViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B14I5ULEeqfMc95BD27pw" x="1450" y="-370"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B2fApULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B2fA5ULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B2fBJULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B2fBZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B2fBpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B2fB5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B2fCJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B2fCZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B2fCpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B2fC5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B2fDJULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B2fDZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ws_i4IVgEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B2fEZULEeqfMc95BD27pw" x="210" y="-1110"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B3GEZULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B3GEpULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B3GE5ULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="__B3GFJULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_K2rMEIViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B3GFZULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B3GFpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B3GF5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B3GGJULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B3GGZULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B3GGpULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B3GG5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B3GHJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B3GHZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B3GHpULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Ikef8IViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B3GIpULEeqfMc95BD27pw" x="950" y="-370"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B3tKJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B3tKZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B3tKpULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="__B3tK5ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Qt56oIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B3tLJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B3tLZULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_RjEoEIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B3tLpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B3tL5ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_SBd0QIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B3tMJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B3tMZULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_SVdHQIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B3tMpULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B3tM5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B3tNJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B3tNZULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B3tNpULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B3tN5ULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B3tOJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B3tOZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B3tOpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B3tO5ULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ILIBQIVhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B3tP5ULEeqfMc95BD27pw" x="530" y="-950"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B5iUJULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B5iUZULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B5iUpULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="__B5iU5ULEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_4_83kIVgEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B5iVJULEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B5iVZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B5iVpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B5iV5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B5iWJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B5iWZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B5iWpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B5iW5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B5iXJULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B5iXZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_2ZKbgIVgEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B5iYZULEeqfMc95BD27pw" x="70" y="-930"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B5iYpULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B5iY5ULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B5iZJULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B5iZZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B5iZpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B5iZ5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B5iaJULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B5iaZULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B5iapULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B5ia5ULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B5ibJULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B5ibZULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_GDAowIViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B5icZULEeqfMc95BD27pw" x="790" y="-370"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B6JgZULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B6JgpULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B6Jg5ULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B6JhJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B6JhZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B6JhpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B6Jh5ULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B6JiJULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B6JiZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B6JipULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B6Ji5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B6JjJULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ELXxsIViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B6JkJULEeqfMc95BD27pw" x="650" y="-370"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__B6weZULEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B6wepULEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B6we5ULEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B6wfJULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B6wfZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B6wfpULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B6wf5ULEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__B6wgJULEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__B6wgZULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__B6wgpULEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__B6wg5ULEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B6whJULEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_RKVigIViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__B6wiJULEeqfMc95BD27pw" x="1330" y="-370"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_7PFC4ZUJEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_7PFC4pUJEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_7PFC45UJEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_N5zMsJT2Eeq5BK6mmo2rWg"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_N5zMsJT2Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="__B0CwJULEeqfMc95BD27pw" type="Generalization_Edge" source="__B0p5pULEeqfMc95BD27pw" target="__B5iUJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B0CwZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__B0CwpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B0Cw5ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__B0CxJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_sCPOgIVhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__B0CxZULEeqfMc95BD27pw" points="[330, -770, -643984, -643984]$[170, -847, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B0CxpULEeqfMc95BD27pw" id="(0.11976047904191617,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B0Cx5ULEeqfMc95BD27pw" id="(0.7741935483870968,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__B1Q4ZULEeqfMc95BD27pw" type="Generalization_Edge" source="__B138JULEeqfMc95BD27pw" target="__B0p0JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B1Q4pULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__B1Q45ULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B1Q5JULEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__B1Q5ZULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_alo_UIViEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__B1Q5pULEeqfMc95BD27pw" points="[1230, -390, -643984, -643984]$[1090, -475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B1Q55ULEeqfMc95BD27pw" id="(0.39603960396039606,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B1Q6JULEeqfMc95BD27pw" id="(0.6611570247933884,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__B2fEpULEeqfMc95BD27pw" type="Generalization_Edge" source="__By0oJULEeqfMc95BD27pw" target="__B5iUJULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B2fE5ULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__B2fFJULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B2fFZULEeqfMc95BD27pw" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__B2fFpULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_WYnasIVhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__B2fF5ULEeqfMc95BD27pw" points="[10, -770, -643984, -643984]$[70, -847, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B2fGJULEeqfMc95BD27pw" id="(0.08403361344537816,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B2fGZULEeqfMc95BD27pw" id="(0.12903225806451613,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__B3tIJULEeqfMc95BD27pw" type="Generalization_Edge" source="__B6weZULEeqfMc95BD27pw" target="__B0p0JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B3tIZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__B3tIpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B3tI5ULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__B3tJJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_a9amIIViEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__B3tJZULEeqfMc95BD27pw" points="[1370, -390, -643984, -643984]$[1130, -475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B3tJpULEeqfMc95BD27pw" id="(0.594059405940594,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B3tJ5ULEeqfMc95BD27pw" id="(0.8264462809917356,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__B4UMJULEeqfMc95BD27pw" type="Generalization_Edge" source="__B5iYpULEeqfMc95BD27pw" target="__B0p0JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B4UMZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__B4UMpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B4UM5ULEeqfMc95BD27pw" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__B4UNJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_ZlFhQIViEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__B4UNZULEeqfMc95BD27pw" points="[810, -390, -643984, -643984]$[970, -475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B4UNpULEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B4UN5ULEeqfMc95BD27pw" id="(0.1652892561983471,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__B47QJULEeqfMc95BD27pw" type="Generalization_Edge" source="__B0p0JULEeqfMc95BD27pw" target="__B0p5pULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B47QZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__B47QpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B47Q5ULEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__B47RJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_67JjgIVhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__B47RZULEeqfMc95BD27pw" points="[590, -610, -643984, -643984]$[450, -667, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B47RpULEeqfMc95BD27pw" id="(0.3305785123966942,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B47R5ULEeqfMc95BD27pw" id="(0.8383233532934131,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__B47SZULEeqfMc95BD27pw" type="Generalization_Edge" source="__B5iUJULEeqfMc95BD27pw" target="__B2fApULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B47SpULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__B47S5ULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B47TJULEeqfMc95BD27pw" x="1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__B47TZULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_UxrSEIVhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__B47TpULEeqfMc95BD27pw" points="[170, -950, -643984, -643984]$[210, -1030, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B47T5ULEeqfMc95BD27pw" id="(0.7741935483870968,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B47UJULEeqfMc95BD27pw" id="(0.16129032258064516,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__B5icpULEeqfMc95BD27pw" type="Generalization_Edge" source="__B1Q6ZULEeqfMc95BD27pw" target="__B0p0JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B5ic5ULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__B5idJULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B5idZULEeqfMc95BD27pw" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__B5idpULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_XsCU8IViEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__B5id5ULEeqfMc95BD27pw" points="[510, -390, -643984, -643984]$[950, -475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B5ieJULEeqfMc95BD27pw" id="(0.2,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B5ieZULEeqfMc95BD27pw" id="(0.08264462809917356,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__B6JYJULEeqfMc95BD27pw" type="Generalization_Edge" source="__B3GEZULEeqfMc95BD27pw" target="__B0p0JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B6JYZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__B6JYpULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B6JY5ULEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__B6JZJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_aLhPIIViEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__B6JZZULEeqfMc95BD27pw" points="[1050, -390, -643984, -643984]$[1050, -475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B6JZpULEeqfMc95BD27pw" id="(0.5529953917050692,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B6JZ5ULEeqfMc95BD27pw" id="(0.49586776859504134,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__B6JaJULEeqfMc95BD27pw" type="Generalization_Edge" source="__B14AJULEeqfMc95BD27pw" target="__B0p5pULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B6JaZULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__B6JapULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B6Ja5ULEeqfMc95BD27pw" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__B6JbJULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_qWp2cIVhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__B6JbZULEeqfMc95BD27pw" points="[410, -610, -643984, -643984]$[410, -667, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B6JbpULEeqfMc95BD27pw" id="(0.2803738317757009,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B6Jb5ULEeqfMc95BD27pw" id="(0.11976047904191617,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__B6JcZULEeqfMc95BD27pw" type="Generalization_Edge" source="__B14FJULEeqfMc95BD27pw" target="__B0p0JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B6JcpULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__B6Jc5ULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B6JdJULEeqfMc95BD27pw" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__B6JdZULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_baXn4IViEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__B6JdpULEeqfMc95BD27pw" points="[1470, -390, -643984, -643984]$[1130, -475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B6Jd5ULEeqfMc95BD27pw" id="(0.39603960396039606,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B6JeJULEeqfMc95BD27pw" id="(0.8264462809917356,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__B6JeZULEeqfMc95BD27pw" type="Generalization_Edge" source="__B3tKJULEeqfMc95BD27pw" target="__B2fApULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B6JepULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__B6Je5ULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B6JfJULEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__B6JfZULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_UQtTAIVhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__B6JfpULEeqfMc95BD27pw" points="[450, -970, -643984, -643984]$[290, -1030, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B6Jf5ULEeqfMc95BD27pw" id="(0.24096385542168675,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B6JgJULEeqfMc95BD27pw" id="(0.8064516129032258,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__B6wcZULEeqfMc95BD27pw" type="Generalization_Edge" source="__B6JgZULEeqfMc95BD27pw" target="__B0p0JULEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="__B6wcpULEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="__B6wc5ULEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__B6wdJULEeqfMc95BD27pw" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__B6wdZULEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_YkOhMIViEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__B6wdpULEeqfMc95BD27pw" points="[670, -390, -643984, -643984]$[970, -475, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B6wd5ULEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__B6weJULEeqfMc95BD27pw" id="(0.1652892561983471,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_8k-e0JUJEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Recurrent_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_IBabAJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBabAZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBabApUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_IBabA5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_AP36kIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBabBJUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBabBZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBabBpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBabB5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBabCJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBabCZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBabCpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBabC5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBabDJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBabDZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_-5MbgIVjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBabEZUMEeqfMc95BD27pw" x="450" y="210"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IBbpIJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBbpIZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBbpIpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_IBbpI5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_495hwIVjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBbpJJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IBbpJZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_6la5MIVjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBbpJpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IBbpJ5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_7-lrkIVjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBbpKJUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBbpKZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBbpKpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBbpK5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBbpLJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBbpLZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBbpLpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBbpL5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBbpMJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBbpMZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_tHLn4IViEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBbpNZUMEeqfMc95BD27pw" x="410" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IBcQMJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBcQMZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBcQMpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_IBcQM5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_iaV_0IVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBcQNJUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBcQNZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBcQNpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBcQN5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBcQOJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBcQOZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBcQOpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBcQO5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBcQPJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBcQPZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_f3AgYIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBcQQZUMEeqfMc95BD27pw" x="40" y="520"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IBc3SJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBc3SZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBc3SpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_IBc3S5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Mgv2UIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBc3TJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IBc3TZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_NmsKsIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBc3TpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IBc3T5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_bIpT0IVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBc3UJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IBc3UZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_dH_VYIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBc3UpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_GNDAIKaAEeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_GM1kwKaAEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_GNDAIaaAEeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_M3Mj8KaAEeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_M26QEKaAEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_M3Mj8aaAEeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OaydoKaAEeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_OalCQKaAEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OaydoaaAEeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PFwtQKaAEeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_PFb9IKaAEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PFwtQaaAEeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_TRIhgKaAEeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_TQ4C0KaAEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TRIhgaaAEeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_upKNIKaBEeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_uo4gUKaBEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_upKNIaaBEeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_zj8sIKaBEeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_zjmG0KaBEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zj8sIaaBEeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0zS0IKaBEeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_0y_SIKaBEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0zS0IaaBEeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_7RCToKaBEeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_7QlAoKaBEeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7RCToaaBEeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ugwuwOauEeq2yMJqys2DtQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ugELMOauEeq2yMJqys2DtQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ugwuweauEeq2yMJqys2DtQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBc3U5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBc3VJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBc3VZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBc3VpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBc3V5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBc3WJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBc3WZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBc3WpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBc3W5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_w_eSoIVjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBc3X5UMEeqfMc95BD27pw" x="180" y="180"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IBdeUJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBdeUZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBdeUpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBdeU5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBdeVJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBdeVZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBdeVpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBdeV5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBdeWJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBdeWZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBdeWpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBdeW5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_l8ROcIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBdeX5UMEeqfMc95BD27pw" x="420" y="520"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IBeFYJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBeFYZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBeFYpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBeFY5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBeFZJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBeFZZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBeFZpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBeFZ5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBeFaJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBeFaZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBeFapUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBeFa5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_EdBQcIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBeFb5UMEeqfMc95BD27pw" x="850" y="210"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IBescJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBescZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBescpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBesc5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBesdJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBesdZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBesdpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBesd5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBeseJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBeseZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBesepUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBese5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_CfAEkIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBesf5UMEeqfMc95BD27pw" x="710" y="210"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IBfTj5UMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBfTkJUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBfTkZUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBfTkpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBfTk5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBfTlJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBfTlZUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IBfTlpUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IBfTl5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IBfTmJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IBfTmZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBfTmpUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_kOLU8IVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IBfTnpUMEeqfMc95BD27pw" x="280" y="520"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_8k-e0ZUJEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_8k-e0pUJEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_8k-e05UJEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_RAjiQJT2Eeq5BK6mmo2rWg"/>
+ </styles>
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_GVw4cPmcEeqCRcDdPeQY2A" name="rulergrid.viewgrid"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_RAjiQJT2Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_IBcQQpUMEeqfMc95BD27pw" type="Generalization_Edge" source="_IBeFYJUMEeqfMc95BD27pw" target="_IBbpIJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBcQQ5UMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_IBcQRJUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBcQRZUMEeqfMc95BD27pw" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IBcQRpUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_svnxkIVkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IBcQR5UMEeqfMc95BD27pw" points="[870, 190, -643984, -643984]$[570, 125, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBcQSJUMEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBcQSZUMEeqfMc95BD27pw" id="(0.9090909090909091,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_IBc3QJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_IBdeUJUMEeqfMc95BD27pw" target="_IBc3SJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBc3QZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_IBc3QpUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBc3Q5UMEeqfMc95BD27pw" x="-2" y="57"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IBc3RJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_qv_cIIVkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IBc3RZUMEeqfMc95BD27pw" points="[430, 410, -643984, -643984]$[330, 341, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBc3RpUMEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBc3R5UMEeqfMc95BD27pw" id="(0.8264462809917356,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_IBesgJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_IBescJUMEeqfMc95BD27pw" target="_IBbpIJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBesgZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_IBesgpUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBesg5UMEeqfMc95BD27pw" x="-2" y="57"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IBeshJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_sMLGQIVkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IBeshZUMEeqfMc95BD27pw" points="[730, 190, -643984, -643984]$[550, 125, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBeshpUMEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBesh5UMEeqfMc95BD27pw" id="(0.8080808080808081,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_IBesiJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_IBfTj5UMEeqfMc95BD27pw" target="_IBc3SJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBesiZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_IBesipUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBesi5UMEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IBesjJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_p2PwsIVkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IBesjZUMEeqfMc95BD27pw" points="[310, 410, -643984, -643984]$[290, 341, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBesjpUMEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBesj5UMEeqfMc95BD27pw" id="(0.5785123966942148,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_IBeskJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_IBcQMJUMEeqfMc95BD27pw" target="_IBc3SJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBeskZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_IBeskpUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBesk5UMEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IBeslJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_pXFIcIVkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IBeslZUMEeqfMc95BD27pw" points="[150, 410, -643984, -643984]$[230, 341, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBeslpUMEeqfMc95BD27pw" id="(0.6976744186046512,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBesl5UMEeqfMc95BD27pw" id="(0.3305785123966942,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_IBesmJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_IBc3SJUMEeqfMc95BD27pw" target="_IBbpIJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBfTgJUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_IBfTgZUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBfTgpUMEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IBfTg5UMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_tTUUgIVkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IBfThJUMEeqfMc95BD27pw" points="[270, 190, -643984, -643984]$[450, 125, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBfThZUMEeqfMc95BD27pw" id="(0.49586776859504134,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBfThpUMEeqfMc95BD27pw" id="(0.3048780487804878,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_IBfTh5UMEeqfMc95BD27pw" type="Generalization_Edge" source="_IBabAJUMEeqfMc95BD27pw" target="_IBbpIJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IBfTiJUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_IBfTiZUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IBfTipUMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_IBfTi5UMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_rjgjwIVkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IBfTjJUMEeqfMc95BD27pw" points="[530, 190, -643984, -643984]$[530, 125, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBfTjZUMEeqfMc95BD27pw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_IBfTjpUMEeqfMc95BD27pw" id="(0.7070707070707071,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_90F9UJUJEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Transformer_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_QyNiR5UMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyNiSJUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyNiSZUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyNiSpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyNiS5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyNiTJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyNiTZUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyNiTpUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyNiT5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyNiUJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyNiUZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyNiUpUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_-aqagIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyNiVpUMEeqfMc95BD27pw" x="10380" y="1160"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyNiX5UMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyNiYJUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyNiYZUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_QyNiYpUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Nai6MIVmEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyNiY5UMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyNiZJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyNiZZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyNiZpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyNiZ5UMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyNiaJUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyNiaZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyNiapUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyNia5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyNibJUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_JjphIIVmEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyNicJUMEeqfMc95BD27pw" x="10760" y="1160"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyNieJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyNieZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyNiepUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_QyNie5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_sbCMMIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyNifJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyNifZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_tmddgIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyNifpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyNif5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_uFbRcIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyNigJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyNigZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_v6pGoIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyNigpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyNig5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_wuIZEIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyNihJUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyNihZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyNihpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyNih5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyNiiJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyNiiZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyNiipUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyNii5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyNijJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyNijZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_gsKxUIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyNikZUMEeqfMc95BD27pw" x="10360" y="900"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyNik5UMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyNilJUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyNilZUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyNilpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyNil5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyNimJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyNimZUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyNimpUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyNim5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyNinJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyNinZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyNinpUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_zItakIVkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyNiopUMEeqfMc95BD27pw" x="10679" y="704"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyOJUJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyOJUZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyOJUpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyOJU5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyOJVJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyOJVZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyOJVpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyOJV5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyOJWJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyOJWZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyOJWpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyOJW5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_AIIo8IVmEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyOJX5UMEeqfMc95BD27pw" x="10560" y="1160"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyOJYJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyOJYZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyOJYpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_QyOJY5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_mZVvgIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyOJZJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyOJZZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_oByUAIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyOJZpUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyOJZ5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyOJaJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyOJaZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyOJapUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyOJa5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyOJbJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyOJbZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyOJbpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyOJb5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_kfJ6wIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyOJc5UMEeqfMc95BD27pw" x="10860" y="900"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyOJdJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyOJdZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyOJdpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_QyOJd5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_2FyaQIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyOJeJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyOJeZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_4EeUgIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyOJepUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyOJe5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_606b0IVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyOJfJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyOJfZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_8LVcMIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyOJfpUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyOJf5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyOJgJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyOJgZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyOJgpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyOJg5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyOJhJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyOJhZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyOJhpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyOJh5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_0gXUkIVlEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyOJi5UMEeqfMc95BD27pw" x="10100" y="1160"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QyOJjJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyOJjZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyOJjpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_QyOJj5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_MA0HIIVmEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyOJkJUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyOJkZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyOJkpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyOJk5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyOJlJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QyOJlZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QyOJlpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QyOJl5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QyOJmJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyOJmZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Ku6aYIVmEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QyOJnZUMEeqfMc95BD27pw" x="11040" y="1160"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_90F9UZUJEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_90F9UpUJEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_90F9U5UJEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_T8DDAJT2Eeq5BK6mmo2rWg"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_T8DDAJT2Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_QyM7MJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_QyOJdJUMEeqfMc95BD27pw" target="_QyNieJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyM7MZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyM7MpUMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QyM7M5UMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_GMzhIIVmEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QyM7NJUMEeqfMc95BD27pw" points="[10220, 1140, -643984, -643984]$[10380, 1047, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QyM7NZUMEeqfMc95BD27pw" id="(0.5645161290322581,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QyM7NpUMEeqfMc95BD27pw" id="(0.1762114537444934,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QyNiQJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_QyOJjJUMEeqfMc95BD27pw" target="_QyOJYJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyNiQZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyNiQpUMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QyNiQ5UMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_QhQMcIVmEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QyNiRJUMEeqfMc95BD27pw" points="[11120, 1140, -643984, -643984]$[10980, 999, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QyNiRZUMEeqfMc95BD27pw" id="(0.47619047619047616,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QyNiRpUMEeqfMc95BD27pw" id="(0.7106598984771574,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QyNiV5UMEeqfMc95BD27pw" type="Generalization_Edge" source="_QyNieJUMEeqfMc95BD27pw" target="_QyNik5UMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyNiWJUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QyNiWZUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyNiWpUMEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QyNiW5UMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_SF09kIVmEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QyNiXJUMEeqfMc95BD27pw" points="[10500, 880, -643984, -643984]$[10700, 800, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QyNiXZUMEeqfMc95BD27pw" id="(0.7048458149779736,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QyNiXpUMEeqfMc95BD27pw" id="(0.36283185840707965,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QyNicZUMEeqfMc95BD27pw" type="Generalization_Edge" source="_QyNiR5UMEeqfMc95BD27pw" target="_QyNieJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyNicpUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyNic5UMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QyNidJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_GrExgIVmEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QyNidZUMEeqfMc95BD27pw" points="[10420, 1140, -643984, -643984]$[10420, 1047, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QyNidpUMEeqfMc95BD27pw" id="(0.40540540540540543,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QyNid5UMEeqfMc95BD27pw" id="(0.3524229074889868,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QyOJnpUMEeqfMc95BD27pw" type="Generalization_Edge" source="_QyOJYJUMEeqfMc95BD27pw" target="_QyNik5UMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyOJn5UMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_QyOJoJUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyOJoZUMEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QyOJopUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_RehtAIVmEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QyOJo5UMEeqfMc95BD27pw" points="[10940, 880, -643984, -643984]$[10740, 800, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QyOJpJUMEeqfMc95BD27pw" id="(0.5076142131979695,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QyOJpZUMEeqfMc95BD27pw" id="(0.7168141592920354,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QyOJp5UMEeqfMc95BD27pw" type="Generalization_Edge" source="_QyNiX5UMEeqfMc95BD27pw" target="_QyOJYJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyOJqJUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyOJqZUMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QyOJqpUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_P0nv8IVmEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QyOJq5UMEeqfMc95BD27pw" points="[10860, 1140, -643984, -643984]$[10920, 999, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QyOJrJUMEeqfMc95BD27pw" id="(0.5714285714285714,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QyOJrZUMEeqfMc95BD27pw" id="(0.40609137055837563,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QyOJrpUMEeqfMc95BD27pw" type="Generalization_Edge" source="_QyOJUJUMEeqfMc95BD27pw" target="_QyNieJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QyOJr5UMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QyOJsJUMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QyOJsZUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_HJqyAIVmEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QyOJspUMEeqfMc95BD27pw" points="[10580, 1140, -643984, -643984]$[10500, 1047, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QyOJs5UMEeqfMc95BD27pw" id="(0.272108843537415,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QyOJtJUMEeqfMc95BD27pw" id="(0.7048458149779736,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="__VnacJUJEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Linear_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_e_03gJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_e_03gZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_e_03gpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_e_03g5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_snPzEIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e_03hJUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_e_03hZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_e_03hpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_e_03h5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_03iJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_e_03iZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_e_03ipUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_e_03i5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_e_03jJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_03jZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ozz9sIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_03kZUMEeqfMc95BD27pw" x="11380" y="1220"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_e_03kpUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_e_03k5UMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_e_03lJUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_e_03lZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_u5YNwIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e_03lpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_e_03l5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_wboqsIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e_03mJUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_e_03mZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_e_03mpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_e_03m5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_03nJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_e_03nZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_e_03npUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_e_03n5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_e_03oJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_03oZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_pJFqIIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_03pZUMEeqfMc95BD27pw" x="11760" y="1220"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_e_03ppUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_e_03p5UMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_e_03qJUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_e_03qZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_e_03qpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_e_03q5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_03rJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_e_03rZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_e_03rpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_e_03r5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_e_03sJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_03sZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_c_eM8IhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_03tZUMEeqfMc95BD27pw" x="11980" y="940"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_e_1ekJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_e_1ekZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_e_1ekpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_e_1ek5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_lYOnoIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e_1elJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_e_1elZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_m2y3YIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e_1elpUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_e_1el5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_e_1emJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_e_1emZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_1empUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_e_1em5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_e_1enJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_e_1enZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_e_1enpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_1en5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_hGyAkIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_1eo5UMEeqfMc95BD27pw" x="11560" y="940"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_e_1epJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_e_1epZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_e_1eppUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_e_1ep5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_e_1eqJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_e_1eqZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_1eqpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_e_1eq5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_e_1erJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_e_1erZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_e_1erpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_1er5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ThvuQIhhEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e_1es5UMEeqfMc95BD27pw" x="11720" y="700"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="__VnacZUJEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="__VnacpUJEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="__Vnac5UJEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_WwqfsJT2Eeq5BK6mmo2rWg"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_WwqfsJT2Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_e_zpYJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_e_03ppUMEeqfMc95BD27pw" target="_e_1epJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_e_zpYZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e_zpYpUMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_e_zpY5UMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_5QYd0IhhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_e_zpZJUMEeqfMc95BD27pw" points="[12000, 920, -643984, -643984]$[11780, 780, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e_zpZZUMEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e_zpZpUMEeqfMc95BD27pw" id="(0.8,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_e_0QcZUMEeqfMc95BD27pw" type="Generalization_Edge" source="_e_03kpUMEeqfMc95BD27pw" target="_e_1ekJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_e_0QcpUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e_0Qc5UMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_e_0QdJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_4ugf0IhhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_e_0QdZUMEeqfMc95BD27pw" points="[11820, 1200, -643984, -643984]$[11700, 1039, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e_0QdpUMEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e_0Qd5UMEeqfMc95BD27pw" id="(0.7920792079207921,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_e_0QeJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_e_03gJUMEeqfMc95BD27pw" target="_e_1ekJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_e_0QeZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e_0QepUMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_e_0Qe5UMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_4MFvQIhhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_e_0QfJUMEeqfMc95BD27pw" points="[11520, 1200, -643984, -643984]$[11600, 1039, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e_0QfZUMEeqfMc95BD27pw" id="(0.8247422680412371,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e_0QfpUMEeqfMc95BD27pw" id="(0.297029702970297,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_e_0Qf5UMEeqfMc95BD27pw" type="Generalization_Edge" source="_e_1ekJUMEeqfMc95BD27pw" target="_e_1epJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_e_0QgJUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_e_0QgZUMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_e_0QgpUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_58n4wIhhEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_e_0Qg5UMEeqfMc95BD27pw" points="[11660, 920, -643984, -643984]$[11720, 780, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e_0QhJUMEeqfMc95BD27pw" id="(0.594059405940594,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_e_0QhZUMEeqfMc95BD27pw" id="(0.2,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_Ahgl0JUKEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Dropout_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_MzKwUK8XEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MzKwUa8XEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MzKwUq8XEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MzKwU68XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MzKwVK8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MzKwVa8XEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzKwVq8XEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MzKwV68XEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MzKwWK8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MzKwWa8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MzKwWq8XEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzKwW68XEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_QF418IhiEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzKwX68XEeqhVOlV64dXmA" x="50" y="290"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MzLXYK8XEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MzLXYa8XEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MzLXYq8XEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MzLXY68XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MzLXZK8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MzLXZa8XEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzLXZq8XEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MzLXZ68XEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MzLXaK8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MzLXaa8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MzLXaq8XEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzLXa68XEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_O7XjkIhiEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzLXb68XEeqhVOlV64dXmA" x="-370" y="290"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MzLXcK8XEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MzLXca8XEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MzLXcq8XEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MzLXc68XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MzLXdK8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MzLXda8XEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzLXdq8XEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MzLXd68XEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MzLXeK8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MzLXea8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MzLXeq8XEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzLXe68XEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Proi4IhiEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzLXf68XEeqhVOlV64dXmA" x="-90" y="290"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MzLXiK8XEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MzLXia8XEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MzLXiq8XEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_MzLXi68XEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_L5uXgIhiEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MzLXjK8XEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MzLXja8XEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Mxr6QIhiEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MzLXjq8XEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MzLXj68XEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_k7wEsKcmEeqkzM30xo7jnw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MzLXkK8XEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MzLXka8XEeqhVOlV64dXmA" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_m_lksKcmEeqkzM30xo7jnw"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MzLXkq8XEeqhVOlV64dXmA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MzLXk68XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MzLXlK8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MzLXla8XEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzLXlq8XEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MzLXl68XEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MzLXmK8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MzLXma8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MzLXmq8XEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzLXm68XEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_JJr40IhiEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzLXn68XEeqhVOlV64dXmA" x="-210" y="30"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_MzLXoK8XEeqhVOlV64dXmA" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MzLXoa8XEeqhVOlV64dXmA" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MzLXoq8XEeqhVOlV64dXmA" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MzLXo68XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MzLXpK8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MzLXpa8XEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzLXpq8XEeqhVOlV64dXmA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_MzLXp68XEeqhVOlV64dXmA" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_MzLXqK8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_MzLXqa8XEeqhVOlV64dXmA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_MzLXqq8XEeqhVOlV64dXmA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzLXq68XEeqhVOlV64dXmA"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_PMP4MIhiEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MzLXr68XEeqhVOlV64dXmA" x="-230" y="290"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_Ahgl0ZUKEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_Ahgl0pUKEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_Ahgl05UKEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_ZUMzcJT2Eeq5BK6mmo2rWg"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_ZUMzcJT2Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_MzLXgK8XEeqhVOlV64dXmA" type="Generalization_Edge" source="_MzLXYK8XEeqhVOlV64dXmA" target="_MzLXiK8XEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MzLXga8XEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_MzLXgq8XEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MzLXg68XEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MzLXhK8XEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_rp92AIhiEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MzLXha8XEeqhVOlV64dXmA" points="[-350, 270, -643984, -643984]$[-210, 129, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MzLXhq8XEeqhVOlV64dXmA" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MzLXh68XEeqhVOlV64dXmA" id="(0.11428571428571428,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MzL-cK8XEeqhVOlV64dXmA" type="Generalization_Edge" source="_MzKwUK8XEeqhVOlV64dXmA" target="_MzLXiK8XEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MzL-ca8XEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_MzL-cq8XEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MzL-c68XEeqhVOlV64dXmA" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MzL-dK8XEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_t3zmkIhiEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MzL-da8XEeqhVOlV64dXmA" points="[70, 270, -643984, -643984]$[-70, 129, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MzL-dq8XEeqhVOlV64dXmA" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MzL-d68XEeqhVOlV64dXmA" id="(0.9142857142857143,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MzL-eK8XEeqhVOlV64dXmA" type="Generalization_Edge" source="_MzLXoK8XEeqhVOlV64dXmA" target="_MzLXiK8XEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MzL-ea8XEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_MzL-eq8XEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MzL-e68XEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MzL-fK8XEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_sKSU0IhiEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MzL-fa8XEeqhVOlV64dXmA" points="[-190, 270, -643984, -643984]$[-190, 129, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MzL-fq8XEeqhVOlV64dXmA" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MzL-f68XEeqhVOlV64dXmA" id="(0.22857142857142856,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MzL-gK8XEeqhVOlV64dXmA" type="Generalization_Edge" source="_MzLXcK8XEeqhVOlV64dXmA" target="_MzLXiK8XEeqhVOlV64dXmA">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MzL-ga8XEeqhVOlV64dXmA" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_MzL-gq8XEeqhVOlV64dXmA" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MzL-g68XEeqhVOlV64dXmA" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MzL-hK8XEeqhVOlV64dXmA"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_srztgIhiEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MzL-ha8XEeqhVOlV64dXmA" points="[-50, 270, -643984, -643984]$[-90, 129, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MzL-hq8XEeqhVOlV64dXmA" id="(0.2,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MzL-h68XEeqhVOlV64dXmA" id="(0.8,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_B1wb8JUKEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Sparse_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_nXg7MJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nXg7MZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nXg7MpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_nXg7M5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_nWwe8IhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nXg7NJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nXg7NZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_p2G2QIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nXg7NpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nXg7N5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_sIOC0IhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nXg7OJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nXg7OZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_tKafoIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nXg7OpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nXg7O5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_vicuAIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nXg7PJUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nXg7PZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nXg7PpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nXg7P5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nXg7QJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nXg7QZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nXg7QpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nXg7Q5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nXg7RJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nXg7RZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_AdGtwIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nXg7SZUMEeqfMc95BD27pw" x="12940" y="700"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nXhiQJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nXhiQZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nXhiQpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_nXhiQ5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_ytrT4IhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nXhiRJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nXhiRZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_z2sxcIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nXhiRpUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nXhiR5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nXhiSJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nXhiSZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nXhiSpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nXhiS5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nXhiTJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nXhiTZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nXhiTpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nXhiT5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_kIoWEIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nXhiU5UMEeqfMc95BD27pw" x="13060" y="960"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nXhiVJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nXhiVZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nXhiVpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_nXhiV5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_w7GjAIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nXhiWJUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nXhiWZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nXhiWpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nXhiW5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nXhiXJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nXhiXZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nXhiXpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nXhiX5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nXhiYJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nXhiYZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_HDvqkIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nXhiZZUMEeqfMc95BD27pw" x="12820" y="960"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_B1wb8ZUKEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_B1wb8pUKEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_B1wb85UKEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_cKwJ0JT2Eeq5BK6mmo2rWg"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_cKwJ0JT2Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_nXgUIJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_nXhiVJUMEeqfMc95BD27pw" target="_nXg7MJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nXgUIZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nXgUIpUMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_nXgUI5UMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_7zj6UIhjEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nXgUJJUMEeqfMc95BD27pw" points="[12920, 940, -643984, -643984]$[12980, 847, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nXgUJZUMEeqfMc95BD27pw" id="(0.594059405940594,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nXgUJpUMEeqfMc95BD27pw" id="(0.2575107296137339,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nXhiaJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_nXhiQJUMEeqfMc95BD27pw" target="_nXg7MJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nXhiaZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nXhiapUMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_nXhia5UMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_8S-aMIhjEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nXhibJUMEeqfMc95BD27pw" points="[13160, 940, -643984, -643984]$[13080, 847, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nXhibZUMEeqfMc95BD27pw" id="(0.5128205128205128,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nXhibpUMEeqfMc95BD27pw" id="(0.6866952789699571,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_D1T44JUKEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Distance_functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_r-GEwJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_r-GEwZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_r-GEwpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_r-GEw5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Km4ksIhkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r-GExJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_r-GExZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_LieqQIhkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r-GExpUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_r-GEx5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_r-GEyJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_r-GEyZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r-GEypUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_r-GEy5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_r-GEzJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_r-GEzZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_r-GEzpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r-GEz5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_F-SB4IhkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r-GE05UMEeqfMc95BD27pw" x="13700" y="960"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_r-Gr0JUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_r-Gr0ZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_r-Gr0pUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_r-Gr05UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_D1Gu4IhkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r-Gr1JUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_r-Gr1ZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_r-Gr1pUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_r-Gr15UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r-Gr2JUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_r-Gr2ZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_r-Gr2pUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_r-Gr25UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_r-Gr3JUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r-Gr3ZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_9-4iYIhjEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r-Gr4ZUMEeqfMc95BD27pw" x="13560" y="700"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_r-Gr8JUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_r-Gr8ZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_r-Gr8pUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_r-Gr85UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_JmnagIhkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r-Gr9JUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_r-Gr9ZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_r-Gr9pUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_r-Gr95UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r-Gr-JUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_r-Gr-ZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_r-Gr-pUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_r-Gr-5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_r-Gr_JUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r-Gr_ZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Ff9uMIhkEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_r-GsAZUMEeqfMc95BD27pw" x="13460" y="960"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_D1T44ZUKEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_D1T44pUKEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_D1T445UKEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_fjUoIJT2Eeq5BK6mmo2rWg"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_fjUoIJT2Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_r-Gr4pUMEeqfMc95BD27pw" type="Generalization_Edge" source="_r-Gr8JUMEeqfMc95BD27pw" target="_r-Gr0JUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_r-Gr45UMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r-Gr5JUMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_r-Gr5ZUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_QjaNgIhkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_r-Gr5pUMEeqfMc95BD27pw" points="[13540, 940, -643984, -643984]$[13580, 783, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r-Gr55UMEeqfMc95BD27pw" id="(0.6329113924050633,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r-Gr6JUMEeqfMc95BD27pw" id="(0.25806451612903225,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_r-Gr6ZUMEeqfMc95BD27pw" type="Generalization_Edge" source="_r-GEwJUMEeqfMc95BD27pw" target="_r-Gr0JUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_r-Gr6pUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_r-Gr65UMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_r-Gr7JUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_RFcjkIhkEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_r-Gr7ZUMEeqfMc95BD27pw" points="[13720, 940, -643984, -643984]$[13660, 783, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r-Gr7pUMEeqfMc95BD27pw" id="(0.2185792349726776,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_r-Gr75UMEeqfMc95BD27pw" id="(0.7741935483870968,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_FJrq0JUKEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Loss_functions" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_w8sFsJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8sFsZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8sFspUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_w8sFs5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_qCV-oIhnEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8sFtJUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8sFtZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8sFtpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8sFt5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8sFuJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8sFuZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8sFupUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8sFu5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8sFvJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8sFvZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_oNze4IhnEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8t64JUMEeqfMc95BD27pw" x="510" y="-170"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w8t64ZUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8t64pUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8t645UMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_w8t65JUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_2xgRgIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8t65ZUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8t65pUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8t655UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8t66JUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8t66ZUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8t66pUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8t665UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8t67JUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8t67ZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8t67pUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_1ml9kIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8t68pUMEeqfMc95BD27pw" x="2410" y="570"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w8uh8JUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8uh8ZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8uh8pUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8uh85UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8uh9JUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8uh9ZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8uh9pUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8uh95UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8uh-JUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8uh-ZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8uh-pUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8uh-5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_XkZnMIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8uh_5UMEeqfMc95BD27pw" x="810" y="330"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w8vJCJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8vJCZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8vJCpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8vJC5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8vJDJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8vJDZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8vJDpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8vJD5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8vJEJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8vJEZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8vJEpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8vJE5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_uaWOwIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8vJF5UMEeqfMc95BD27pw" x="1450" y="530"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w8vwEpUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8vwE5UMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8vwFJUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_w8vwFZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_4J95QIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8vwFpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w8vwF5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_5TNZQIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8vwGJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w8vwGZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_6KGlAIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8vwGpUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8vwG5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8vwHJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8vwHZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8vwHpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8vwH5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8vwIJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8vwIZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8vwIpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8vwI5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_0iSA4IhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8vwJ5UMEeqfMc95BD27pw" x="2170" y="570"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w8wXIpUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8wXI5UMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8wXJJUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8wXJZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8wXJpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8wXJ5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8wXKJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8wXKZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8wXKpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8wXK5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8wXLJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8wXLZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_6OX2cIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8wXMZUMEeqfMc95BD27pw" x="2650" y="570"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w8w-MJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8w-MZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8w-MpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8w-M5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8w-NJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8w-NZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8w-NpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8w-N5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8w-OJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8w-OZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8w-OpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8w-O5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_o24mMIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8w-P5UMEeqfMc95BD27pw" x="1290" y="530"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w8w-QJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8w-QZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8w-QpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_w8w-Q5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_Hr6rkIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8w-RJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w8w-RZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_KRcjYIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8w-RpUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8w-R5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8w-SJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8w-SZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8w-SpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8w-S5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8w-TJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8w-TZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8w-TpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8w-T5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_F2VqAIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8w-U5UMEeqfMc95BD27pw" x="1110" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w8xlSJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8xlSZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8xlSpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8xlS5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8xlTJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8xlTZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8xlTpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8xlT5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8xlUJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8xlUZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8xlUpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8xlU5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_v673wIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8yMU5UMEeqfMc95BD27pw" x="1590" y="530"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w8yMXJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8yMXZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8yMXpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8yMX5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8yMYJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8yMYZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8yMYpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8yMY5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8yMZJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8yMZZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8yMZpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8yMZ5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_UW5JYIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8yMa5UMEeqfMc95BD27pw" x="670" y="330"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w8zacJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8zacZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8zacpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8zac5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8zadJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8zadZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8zadpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w8zad5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w8zaeJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w8zaeZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w8zaepUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8zae5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_yCiS4IhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w8zaf5UMEeqfMc95BD27pw" x="1110" y="330"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w80BgJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w80BgZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w80BgpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w80Bg5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w80BhJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w80BhZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w80BhpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w80Bh5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w80BiJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w80BiZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w80BipUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w80Bi5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_pWuucIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w80Bj5UMEeqfMc95BD27pw" x="2950" y="790"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w80BkJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w80BkZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w80BkpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_w80okJUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_e4iGsIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w80okZUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w80okpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w80ok5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w80olJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w80olZUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w80olpUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w80ol5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w80omJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w80omZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w80ompUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_cSDMoIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w80onpUMEeqfMc95BD27pw" x="2510" y="330"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w81PoJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w81PoZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w81PopUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_w81Po5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_HB3XEIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w81PpJUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w81PpZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w81PppUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w81Pp5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w81PqJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w81PqZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w81PqpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w81Pq5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w81PrJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w81PrZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_DrSc0IhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w81PsZUMEeqfMc95BD27pw" x="1810" y="530"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w812sZUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w812spUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w812s5UMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_w812tJUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_NFUHQIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w812tZUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w812tpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w812t5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w812uJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w812uZUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w812upUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w812u5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w812vJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w812vZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w812vpUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_JaQx0IhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w812wpUMEeqfMc95BD27pw" x="1730" y="770"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w83E2pUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w83E25UMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w83E3JUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w83E3ZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w83E3pUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w83E35UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w83E4JUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w83E4ZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w83E4pUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w83E45UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w83E5JUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w83E5ZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_sYrucIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w83E6ZUMEeqfMc95BD27pw" x="970" y="330"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w84S-JUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w84S-ZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w84S-pUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_w84S-5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_LlDOYIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w84S_JUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w84S_ZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w84S_pUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w84S_5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w84TAJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w84TAZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w84TApUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w84TA5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w84TBJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w84TBZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_J1LMMIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w84TCZUMEeqfMc95BD27pw" x="1930" y="770"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w846AZUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w846ApUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w846A5UMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w846BJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w846BZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w846BpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w846B5UMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w846CJUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w846CZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w846CpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w846C5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w846DJUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_oavnUIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w846EJUMEeqfMc95BD27pw" x="2810" y="790"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w85hEJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w85hEZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w85hEpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_w85hE5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_dvGZcIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w85hFJUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w85hFZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w85hFpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w85hF5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w85hGJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w85hGZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w85hGpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w85hG5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w85hHJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w85hHZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_TXEOoIhpEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w85hIZUMEeqfMc95BD27pw" x="1530" y="330"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w86IIJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w86IIZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w86IIpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_w86II5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_fsyDkIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w86IJJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w86IJZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_g54v4IhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w86IJpUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w86IJ5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w86IKJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w86IKZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w86IKpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w86IK5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w86ILJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w86ILZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w86ILpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w86IL5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_dgekEIhoEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w86IM5UMEeqfMc95BD27pw" x="30" y="70"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_w86vMpUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w86vM5UMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w86vNJUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_w86vNZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_kXdYEIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w86vNpUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w86vN5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w86vOJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w86vOZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w86vOpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_w86vO5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_w86vPJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_w86vPZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_w86vPpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w86vP5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_hqxIUIhqEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_w86vQ5UMEeqfMc95BD27pw" x="2810" y="570"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_FJrq0ZUKEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_FJrq0pUKEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_FJrq05UKEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_nZcP0JT2Eeq5BK6mmo2rWg"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_Ej3QgJm2Eeq8nv7tV9lOqQ" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_nZcP0JT2Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_w8q3kJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w8w-MJUMEeqfMc95BD27pw" target="_w85hEJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8q3kZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w8q3kpUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8reoJUMEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w8reoZUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_sErX4IhpEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w8reopUMEeqfMc95BD27pw" points="[1155, 515, -643984, -643984]$[1175, 418, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8reo5UMEeqfMc95BD27pw" id="(0.45112781954887216,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8repJUMEeqfMc95BD27pw" id="(0.11428571428571428,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w8vJAJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w85hEJUMEeqfMc95BD27pw" target="_w8w-QJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8vJAZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w8vJApUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8vJA5UMEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w8vJBJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_KmOZMIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w8vJBZUMEeqfMc95BD27pw" points="[1315, 315, -643984, -643984]$[1015, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8vJBpUMEeqfMc95BD27pw" id="(0.22857142857142856,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8vJB5UMEeqfMc95BD27pw" id="(0.7920792079207921,0.9971988795518194)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w8xlQJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w8vJCJUMEeqfMc95BD27pw" target="_w85hEJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8xlQZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w8xlQpUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8xlQ5UMEeqfMc95BD27pw" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w8xlRJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_zEGoIIhpEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w8xlRZUMEeqfMc95BD27pw" points="[1235, 515, -643984, -643984]$[1195, 418, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8xlRpUMEeqfMc95BD27pw" id="(0.3418803418803419,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8xlR5UMEeqfMc95BD27pw" id="(0.22857142857142856,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w8yMVJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w86vMpUMEeqfMc95BD27pw" target="_w80BkJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8yMVZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w8yMVpUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8yMV5UMEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w8yMWJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_uCkygIhqEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w8yMWZUMEeqfMc95BD27pw" points="[2490, 555, -643984, -643984]$[2410, 418, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8yMWpUMEeqfMc95BD27pw" id="(0.2926829268292683,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8yMW5UMEeqfMc95BD27pw" id="(0.9942196531791907,0.970873786407767)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w8yzYJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w86IIJUMEeqfMc95BD27pw" target="_w8sFsJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8yzYZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w8yzYpUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8yzY5UMEeqfMc95BD27pw" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w8yzZJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_YDZI8IhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w8yzZZUMEeqfMc95BD27pw" points="[130, 50, -643984, -643984]$[550, -88, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8yzZpUMEeqfMc95BD27pw" id="(0.5970149253731343,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8yzZ5UMEeqfMc95BD27pw" id="(0.3191489361702128,0.996763754045307)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w8yzaJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w80BgJUMEeqfMc95BD27pw" target="_w86vMpUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8yzaZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w8yzapUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8yza5UMEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w8yzbJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_qQK34IhqEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w8yzbZUMEeqfMc95BD27pw" points="[2650, 795, -643984, -643984]$[2590, 658, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8yzbpUMEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8yzb5UMEeqfMc95BD27pw" id="(0.7804878048780488,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w8zagJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w81PoJUMEeqfMc95BD27pw" target="_w85hEJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w8zagZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w8zagpUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w8zag5UMEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w8zahJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_UcGuoIhqEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w8zahZUMEeqfMc95BD27pw" points="[1575, 515, -643984, -643984]$[1415, 418, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8zahpUMEeqfMc95BD27pw" id="(0.1388888888888889,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w8zah5UMEeqfMc95BD27pw" id="(0.8,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w80on5UMEeqfMc95BD27pw" type="Generalization_Edge" source="_w83E2pUMEeqfMc95BD27pw" target="_w8w-QJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w80ooJUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w80ooZUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w80oopUMEeqfMc95BD27pw" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w80oo5UMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_Ojop8IhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w80opJUMEeqfMc95BD27pw" points="[795, 315, -643984, -643984]$[935, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w80opZUMEeqfMc95BD27pw" id="(0.8,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w80oppUMEeqfMc95BD27pw" id="(0.39603960396039606,0.9971988795518194)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w81PspUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w8vwEpUMEeqfMc95BD27pw" target="_w80BkJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w81Ps5UMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w81PtJUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w81PtZUMEeqfMc95BD27pw" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w81PtpUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_H58ZIIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w81Pt5UMEeqfMc95BD27pw" points="[2055, 555, -643984, -643984]$[2275, 417, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w81PuJUMEeqfMc95BD27pw" id="(0.7486631016042781,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w81PuZUMEeqfMc95BD27pw" id="(0.11560693641618497,0.9967637540453059)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w82dwZUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w846AZUMEeqfMc95BD27pw" target="_w86vMpUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w82dwpUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w82dw5UMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w82dxJUMEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w82dxZUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_rT8pEIhqEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w82dxpUMEeqfMc95BD27pw" points="[2490, 775, -643984, -643984]$[2490, 658, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w82dx5UMEeqfMc95BD27pw" id="(0.5660377358490566,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w82dyJUMEeqfMc95BD27pw" id="(0.2926829268292683,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w82dyZUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w8w-QJUMEeqfMc95BD27pw" target="_w8sFsJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w82dypUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w82dy5UMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w82dzJUMEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w82dzZUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_YyIeQIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w82dzpUMEeqfMc95BD27pw" points="[1150, 50, -643984, -643984]$[630, -88, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w82dz5UMEeqfMc95BD27pw" id="(0.297029702970297,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w82d0JUMEeqfMc95BD27pw" id="(0.7446808510638298,0.996763754045307)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w83E0pUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w812sZUMEeqfMc95BD27pw" target="_w81PoJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w83E05UMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w83E1JUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w83E1ZUMEeqfMc95BD27pw" x="1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w83E1pUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_THXJQIhqEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w83E15UMEeqfMc95BD27pw" points="[1535, 755, -643984, -643984]$[1595, 618, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w83E2JUMEeqfMc95BD27pw" id="(0.3468208092485549,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w83E2ZUMEeqfMc95BD27pw" id="(0.2777777777777778,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w83r4JUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w8yMXJUMEeqfMc95BD27pw" target="_w8w-QJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w83r4ZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w83r4pUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w83r45UMEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w83r5JUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_PzV-UIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w83r5ZUMEeqfMc95BD27pw" points="[475, 315, -643984, -643984]$[875, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w83r5pUMEeqfMc95BD27pw" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w83r55UMEeqfMc95BD27pw" id="(0.09900990099009901,0.9971988795518194)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w83r6JUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w84S-JUMEeqfMc95BD27pw" target="_w81PoJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w83r6ZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w83r6pUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w83r65UMEeqfMc95BD27pw" x="-1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w83r7JUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_ToeSQIhqEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w83r7ZUMEeqfMc95BD27pw" points="[1715, 755, -643984, -643984]$[1655, 618, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w83r7pUMEeqfMc95BD27pw" id="(0.24390243902439024,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w83r75UMEeqfMc95BD27pw" id="(0.6944444444444444,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w83r8JUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w80BkJUMEeqfMc95BD27pw" target="_w8w-QJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w83r8ZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w83r8pUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w83r85UMEeqfMc95BD27pw" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w83r9JUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_L6mLIIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w83r9ZUMEeqfMc95BD27pw" points="[2275, 315, -643984, -643984]$[1035, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w83r9pUMEeqfMc95BD27pw" id="(0.11560693641618497,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w83r95UMEeqfMc95BD27pw" id="(0.8910891089108911,0.9971988795518194)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w84S8JUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w8xlSJUMEeqfMc95BD27pw" target="_w85hEJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w84S8ZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w84S8pUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w84S85UMEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w84S9JUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_0GpqQIhpEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w84S9ZUMEeqfMc95BD27pw" points="[1355, 515, -643984, -643984]$[1215, 418, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w84S9pUMEeqfMc95BD27pw" id="(0.15503875968992248,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w84S95UMEeqfMc95BD27pw" id="(0.34285714285714286,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w846EZUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w8zacJUMEeqfMc95BD27pw" target="_w8w-QJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w846EpUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w846E5UMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w846FJUMEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w846FZUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_OBMEMIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w846FpUMEeqfMc95BD27pw" points="[935, 315, -643984, -643984]$[955, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w846F5UMEeqfMc95BD27pw" id="(0.6153846153846154,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w846GJUMEeqfMc95BD27pw" id="(0.49504950495049505,0.9971988795518194)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w86INJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w8uh8JUMEeqfMc95BD27pw" target="_w8w-QJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w86INZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w86INpUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w86IN5UMEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w86IOJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_PLRRsIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w86IOZUMEeqfMc95BD27pw" points="[595, 315, -643984, -643984]$[915, 173, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w86vMJUMEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w86vMZUMEeqfMc95BD27pw" id="(0.297029702970297,0.9971988795518194)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w87WQJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w8wXIpUMEeqfMc95BD27pw" target="_w80BkJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w87WQZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w87WQpUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w87WQ5UMEeqfMc95BD27pw" x="-1" y="57"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w87WRJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_7bTjoIhpEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w87WRZUMEeqfMc95BD27pw" points="[2430, 575, -643984, -643984]$[2310, 418, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w87WRpUMEeqfMc95BD27pw" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w87WR5UMEeqfMc95BD27pw" id="(0.8092485549132948,0.9805825242718447)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_w87WSJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_w8t64ZUMEeqfMc95BD27pw" target="_w80BkJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_w87WSZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_w87WSpUMEeqfMc95BD27pw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_w87WS5UMEeqfMc95BD27pw" x="1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_w87WTJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_HRZLYIhrEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w87WTZUMEeqfMc95BD27pw" points="[2275, 555, -643984, -643984]$[2335, 417, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w87WTpUMEeqfMc95BD27pw" id="(0.6091370558375635,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w87WT5UMEeqfMc95BD27pw" id="(0.4624277456647399,0.9967637540453059)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_GhIl8JUKEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="Vision_layers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_2LXKAJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2LXKAZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2LXKApUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2LXKA5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2LXKBJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2LXKBZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LXKBpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2LXKB5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2LXKCJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2LXKCZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2LXKCpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LXKC5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_iLwgEIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LXKD5UMEeqfMc95BD27pw" x="280" y="40" width="569"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2LYYIJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2LYYIZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2LYYIpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_2LYYI5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_507w0IhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2LYYJJUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2LYYJZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2LYYJpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2LYYJ5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LYYKJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2LYYKZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2LYYKpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2LYYK5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2LYYLJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LYYLZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_2p5YMIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LYYMZUMEeqfMc95BD27pw" x="640" y="220"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2LYYOZUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2LYYOpUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2LYYO5UMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2LYYPJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2LYYPZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2LYYPpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LYYP5UMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2LYYQJUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2LYYQZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2LYYQpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2LYYQ5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LYYRJUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ExzHAIhsEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LYYSJUMEeqfMc95BD27pw" x="340" y="400"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2LY_MJUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2LY_MZUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2LY_MpUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_2LY_M5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_-r78AIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2LY_NJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2LY_NZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#___G0EIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2LY_NpUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2LY_N5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2LY_OJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2LY_OZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LY_OpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2LY_O5UMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2LY_PJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2LY_PZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2LY_PpUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LY_P5UMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_9D3yAIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LY_Q5UMEeqfMc95BD27pw" x="100" y="400"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2LZmTpUMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2LZmT5UMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2LZmUJUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_2LZmUZUMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_xJ4sQIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2LZmUpUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2LZmU5UMEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_yEO0oIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2LZmVJUMEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2LZmVZUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2LZmVpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2LZmV5UMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LZmWJUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2LZmWZUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2LZmWpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2LZmW5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2LZmXJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LZmXZUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_t32TwIhrEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LZmYZUMEeqfMc95BD27pw" x="280" y="220" width="201" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_2LZmY5UMEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2LZmZJUMEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2LZmZZUMEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2LZmZpUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2LZmZ5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2LaNUJUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LaNUZUMEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_2LaNUpUMEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_2LaNU5UMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2LaNVJUMEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2LaNVZUMEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LaNVpUMEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_FiUlAIhsEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2LaNWpUMEeqfMc95BD27pw" x="520" y="400"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_GhIl8ZUKEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_GhIl8pUKEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_GhIl85UKEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_q6FsEJT2Eeq5BK6mmo2rWg"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_mciQkJm1Eeq8nv7tV9lOqQ" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_q6FsEJT2Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_2LYYMpUMEeqfMc95BD27pw" type="Generalization_Edge" source="_2LY_MJUMEeqfMc95BD27pw" target="_2LZmTpUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2LYYM5UMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_t_FRcJm0Eeq8nv7tV9lOqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2LYYNJUMEeqfMc95BD27pw" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2LYYNZUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_KFjfoIhsEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2LYYNpUMEeqfMc95BD27pw" points="[280, 400, -643984, -643984]$[280, 360, -643984, -643984]$[320, 360, -643984, -643984]$[320, 321, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2LYYN5UMEeqfMc95BD27pw" id="(0.6862745098039216,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2LYYOJUMEeqfMc95BD27pw" id="(0.19900497512437812,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_2LY_RZUMEeqfMc95BD27pw" type="Generalization_Edge" source="_2LZmTpUMEeqfMc95BD27pw" target="_2LXKAJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2LY_RpUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_t-8ukJm0Eeq8nv7tV9lOqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2LY_R5UMEeqfMc95BD27pw" x="-1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2LY_SJUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_MhVlkIhsEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2LY_SZUMEeqfMc95BD27pw" points="[12680, 615, -643984, -643984]$[12800, 535, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2LY_SpUMEeqfMc95BD27pw" id="(0.4975124378109453,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2LY_S5UMEeqfMc95BD27pw" id="(0.1757469244288225,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_2LY_TJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_2LZmY5UMEeqfMc95BD27pw" target="_2LZmTpUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2LY_TZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_t_MmMJm0Eeq8nv7tV9lOqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2LY_TpUMEeqfMc95BD27pw" x="-2" y="57"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2LY_T5UMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_LUKn0IhsEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2LY_UJUMEeqfMc95BD27pw" points="[660, 400, -643984, -643984]$[660, 360, -643984, -643984]$[460, 360, -643984, -643984]$[460, 321, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2LY_UZUMEeqfMc95BD27pw" id="(0.4166666666666667,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2LY_UpUMEeqfMc95BD27pw" id="(0.8955223880597015,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_2LZmQJUMEeqfMc95BD27pw" type="Generalization_Edge" source="_2LYYIJUMEeqfMc95BD27pw" target="_2LXKAJUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2LZmQZUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_t_e6EJm0Eeq8nv7tV9lOqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2LZmQpUMEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2LZmQ5UMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_L7Zm8IhsEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2LZmRJUMEeqfMc95BD27pw" points="[13000, 615, -643984, -643984]$[12840, 535, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2LZmRZUMEeqfMc95BD27pw" id="(0.4807692307692308,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2LZmRpUMEeqfMc95BD27pw" id="(0.8084358523725835,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_2LZmR5UMEeqfMc95BD27pw" type="Generalization_Edge" source="_2LYYOZUMEeqfMc95BD27pw" target="_2LZmTpUMEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_2LZmSJUMEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_t_UiAJm0Eeq8nv7tV9lOqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2LZmSZUMEeqfMc95BD27pw" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2LZmSpUMEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_KqD64IhsEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2LZmS5UMEeqfMc95BD27pw" points="[460, 400, -643984, -643984]$[460, 360, -643984, -643984]$[400, 360, -643984, -643984]$[400, 321, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2LZmTJUMEeqfMc95BD27pw" id="(0.410958904109589,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2LZmTZUMEeqfMc95BD27pw" id="(0.5970149253731343,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_ITCocJUKEeqWd_6S3mbYXg" type="PapyrusUMLProfileDiagram" name="DataParallel_layers_(multi-GPU, distributed)" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_B_Hr8ZUNEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_B_Hr8pUNEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_B_Hr85UNEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_B_Hr9JUNEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_rBanQIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B_Hr9ZUNEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B_Hr9pUNEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_r6Q60IhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B_Hr95UNEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B_Hr-JUNEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_stpfkIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B_Hr-ZUNEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_B_Hr-pUNEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_B_Hr-5UNEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_B_Hr_JUNEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B_Hr_ZUNEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_B_Hr_pUNEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_B_Hr_5UNEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_B_HsAJUNEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_B_HsAZUNEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B_HsApUNEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_jq9XEIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B_HsBpUNEeqfMc95BD27pw" x="120" y="60" width="541"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B_ITAJUNEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_B_ITAZUNEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_B_ITApUNEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_B_ITA5UNEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_B_ITBJUNEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_B_ITBZUNEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B_ITBpUNEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_B_ITB5UNEeqfMc95BD27pw" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_B_ITCJUNEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_B_ITCZUNEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_B_ITCpUNEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B_ITC5UNEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_2bnZsIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B_ITD5UNEeqfMc95BD27pw" x="500" y="280" width="161"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B_ITEJUNEeqfMc95BD27pw" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_B_ITEZUNEeqfMc95BD27pw" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_B_ITEpUNEeqfMc95BD27pw" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_B_ITE5UNEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_vpBrkIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B_ITFJUNEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B_ITFZUNEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_xG4JoIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B_ITFpUNEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B_ITF5UNEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_yJonIIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B_ITGJUNEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B_ITGZUNEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_zcpuMIhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B_ITGpUNEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_B_ITG5UNEeqfMc95BD27pw" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_1KdT0IhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B_ITHJUNEeqfMc95BD27pw"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_B_ITHZUNEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_B_ITHpUNEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_B_ITH5UNEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B_ITIJUNEeqfMc95BD27pw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_B_ITIZUNEeqfMc95BD27pw" visible="false" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_B_ITIpUNEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_B_ITI5UNEeqfMc95BD27pw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_B_ITJJUNEeqfMc95BD27pw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B_ITJZUNEeqfMc95BD27pw"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_tsGr4IhtEeqlnrZTj0aPoA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B_ITKZUNEeqfMc95BD27pw" x="120" y="280" width="281" height="141"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_ITCocZUKEeqWd_6S3mbYXg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_ITCocpUKEeqWd_6S3mbYXg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_ITCoc5UKEeqWd_6S3mbYXg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_wBUroJT2Eeq5BK6mmo2rWg"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_B6gooJm2Eeq8nv7tV9lOqQ" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_wBUroJT2Eeq5BK6mmo2rWg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_B_Gd0JUNEeqfMc95BD27pw" type="Generalization_Edge" source="_B_ITAJUNEeqfMc95BD27pw" target="_B_Hr8ZUNEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_B_Gd0ZUNEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_M4hgQJm0Eeq8nv7tV9lOqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B_Gd0pUNEeqfMc95BD27pw" x="-1" y="57"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_B_Gd05UNEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_4pLdcIhtEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_B_Gd1JUNEeqfMc95BD27pw" points="[11560, 775, -643984, -643984]$[11440, 649, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B_Gd1ZUNEeqfMc95BD27pw" id="(0.4968944099378882,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B_Gd1pUNEeqfMc95BD27pw" id="(0.8502772643253235,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_B_HE4JUNEeqfMc95BD27pw" type="Generalization_Edge" source="_B_ITEJUNEeqfMc95BD27pw" target="_B_Hr8ZUNEeqfMc95BD27pw">
+ <children xmi:type="notation:DecorationNode" xmi:id="_B_HE4ZUNEeqfMc95BD27pw" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_M4pcEJm0Eeq8nv7tV9lOqQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_B_HE4pUNEeqfMc95BD27pw" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_B_HE45UNEeqfMc95BD27pw"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_5KbJUIhtEeqlnrZTj0aPoA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_B_HE5JUNEeqfMc95BD27pw" points="[11300, 775, -643984, -643984]$[11320, 649, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B_HE5ZUNEeqfMc95BD27pw" id="(0.498220640569395,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_B_HE5pUNEeqfMc95BD27pw" id="(0.2587800369685767,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <css:EmbeddedStyleSheet xmi:id="_mci3oJm1Eeq8nv7tV9lOqQ" label="OnlyAttributes" content="Stereotype > Compartment[kind="operations"] {
 visible: false;
}

Generalization {
	routing : Rectilinear;
}

Extension {
	routing : Rectilinear;
}"/>
+ <notation:Diagram xmi:id="_IJYokKThEeqmTOsCAzVBxg" type="PapyrusUMLProfileDiagram" name="Layer_weight_constraints" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_Q5hogKThEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q5iPkKThEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Q5iPkaThEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_EPESoKTiEeqmTOsCAzVBxg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_EO8W0KTiEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_EPESoaTiEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_H-KakKTiEeqmTOsCAzVBxg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_H-FiEKTiEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_H-KakaTiEeqmTOsCAzVBxg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Q5iPkqThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Q5iPk6ThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Q5iPlKThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q5iPlaThEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Q5iPlqThEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Q5iPl6ThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Q5iPmKThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Q5iPmaThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q5iPmqThEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Q5gaYKThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q5hogaThEeqmTOsCAzVBxg" x="140" y="680"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_SFrSkKThEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_SFrSkqThEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SFr5oKThEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SFr5oaThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SFr5oqThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SFr5o6ThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SFr5pKThEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_SFr5paThEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_SFr5pqThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_SFr5p6ThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_SFr5qKThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SFr5qaThEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_SFqEcKThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SFrSkaThEeqmTOsCAzVBxg" y="680"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oe5-YKThEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oe6lcKThEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_oe6lcaThEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_oe6lcqThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oe6lc6ThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oe6ldKThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe6ldaThEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_oe7MgKThEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_oe7MgaThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oe7MgqThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oe7Mg6ThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe7MhKThEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_oe1s8KThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oe5-YaThEeqmTOsCAzVBxg" x="540" y="460"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_p5hiQKThEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_p5iJUKThEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_p5iJUaThEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_p5iJUqThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_p5iJU6ThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_p5iJVKThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p5iJVaThEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_p5iJVqThEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_p5iJV6ThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_p5iJWKThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_p5iJWaThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p5iJWqThEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_p5ftEKThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_p5hiQaThEeqmTOsCAzVBxg" x="420" y="460"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s2-K0KThEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_s2-x4KThEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_s2-x4aThEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_s2-x4qThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_s2-x46ThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_s2-x5KThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s2-x5aThEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_s2-x5qThEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_s2-x56ThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_s2-x6KThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_s2-x6aThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s2-x6qThEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_s288sKThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s2-K0aThEeqmTOsCAzVBxg" x="300" y="460"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_T5M-UKTkEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_T5NlYKTkEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_T5NlYaTkEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_YMPg0KTkEeqmTOsCAzVBxg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_YMFv0KTkEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YMPg0aTkEeqmTOsCAzVBxg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_T5NlYqTkEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_T5NlY6TkEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_T5NlZKTkEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T5NlZaTkEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_T5NlZqTkEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_T5NlZ6TkEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_T5NlaKTkEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_T5NlaaTkEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T5NlaqTkEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_T5LJIKTkEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_T5M-UaTkEeqmTOsCAzVBxg" x="160" y="240"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_cxYf8KTkEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_cxYf8qTkEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cxYf86TkEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_hrnlUKTkEeqmTOsCAzVBxg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_hrd0UKTkEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hrnlUaTkEeqmTOsCAzVBxg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cxYf9KTkEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cxYf9aTkEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cxYf9qTkEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cxYf96TkEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_cxYf-KTkEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_cxYf-aTkEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_cxYf-qTkEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_cxYf-6TkEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cxYf_KTkEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_cxXR0KTkEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cxYf8aTkEeqmTOsCAzVBxg" x="20" y="480"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_sQ2WIKZ6EeqIr7xwFiWQGQ" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_sQ6AgKZ6EeqIr7xwFiWQGQ" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sQ6nkKZ6EeqIr7xwFiWQGQ" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sQ6nkaZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sQ6nkqZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sQ6nk6Z6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sQ6nlKZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_sQ6nlaZ6EeqIr7xwFiWQGQ" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_sQ6nlqZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_sQ6nl6Z6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_sQ6nmKZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sQ6nmaZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_sQtMMKZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sQ2WIaZ6EeqIr7xwFiWQGQ" x="340" y="40"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_IJYokaThEeqmTOsCAzVBxg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_IJYokqThEeqmTOsCAzVBxg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_IJYok6ThEeqmTOsCAzVBxg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_02nlsK8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ZkbbwKTkEeqmTOsCAzVBxg" type="Generalization_Edge" source="_s2-K0KThEeqmTOsCAzVBxg" target="_T5M-UKTkEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Zkbbw6TkEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Z-gvsKTkEeqmTOsCAzVBxg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ZkbbxKTkEeqmTOsCAzVBxg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ZkbbwaTkEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_ZkPOgKTkEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ZkbbwqTkEeqmTOsCAzVBxg" points="[560, 460, -643984, -643984]$[400, 443, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Zko3IKTkEeqmTOsCAzVBxg" id="(0.2,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Zko3IaTkEeqmTOsCAzVBxg" id="(0.5970149253731343,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_vNWsAKTkEeqmTOsCAzVBxg" type="Generalization_Edge" source="_Q5hogKThEeqmTOsCAzVBxg" target="_cxYf8KTkEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vNWsA6TkEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_y4PpYKTkEeqmTOsCAzVBxg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vNWsBKTkEeqmTOsCAzVBxg" x="-1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vNWsAaTkEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_vNIpkKTkEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vNWsAqTkEeqmTOsCAzVBxg" points="[200, 680, -643984, -643984]$[140, 583, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vNo_4KTkEeqmTOsCAzVBxg" id="(0.4225352112676056,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vNpm8KTkEeqmTOsCAzVBxg" id="(0.8333333333333334,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_vv4KQKTkEeqmTOsCAzVBxg" type="Generalization_Edge" source="_SFrSkKThEeqmTOsCAzVBxg" target="_cxYf8KTkEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vv4KQ6TkEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_y4W-IKTkEeqmTOsCAzVBxg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vv4KRKTkEeqmTOsCAzVBxg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vv4KQaTkEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_vvr9AKTkEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vv4KQqTkEeqmTOsCAzVBxg" points="[60, 680, -643984, -643984]$[80, 583, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vwE-kKTkEeqmTOsCAzVBxg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vwE-kaTkEeqmTOsCAzVBxg" id="(0.4166666666666667,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1Q8mIKTkEeqmTOsCAzVBxg" type="Generalization_Edge" source="_cxYf8KTkEeqmTOsCAzVBxg" target="_T5M-UKTkEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1Q9NMKTkEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_wMXwgKZ6EeqIr7xwFiWQGQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1Q9NMaTkEeqmTOsCAzVBxg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1Q8mIaTkEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_1Qw_8KTkEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1Q8mIqTkEeqmTOsCAzVBxg" points="[140, 480, -643984, -643984]$[200, 343, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1RKokKTkEeqmTOsCAzVBxg" id="(0.8333333333333334,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1RKokaTkEeqmTOsCAzVBxg" id="(0.29850746268656714,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ymr20KZ6EeqIr7xwFiWQGQ" type="Generalization_Edge" source="_T5M-UKTkEeqmTOsCAzVBxg" target="_sQ2WIKZ6EeqIr7xwFiWQGQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ymr206Z6EeqIr7xwFiWQGQ" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ymr21KZ6EeqIr7xwFiWQGQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ymr20aZ6EeqIr7xwFiWQGQ"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_ymebcKZ6EeqIr7xwFiWQGQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ymr20qZ6EeqIr7xwFiWQGQ" points="[240, 240, -643984, -643984]$[380, 140, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ynOCUKZ6EeqIr7xwFiWQGQ" id="(0.5970149253731343,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ynOCUaZ6EeqIr7xwFiWQGQ" id="(0.4,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_zMcPQKZ6EeqIr7xwFiWQGQ" type="Generalization_Edge" source="_p5hiQKThEeqmTOsCAzVBxg" target="_sQ2WIKZ6EeqIr7xwFiWQGQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_zMc2UKZ6EeqIr7xwFiWQGQ" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zMc2UaZ6EeqIr7xwFiWQGQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_zMcPQaZ6EeqIr7xwFiWQGQ"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_zMJUUKZ6EeqIr7xwFiWQGQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zMcPQqZ6EeqIr7xwFiWQGQ" points="[480, 460, -643984, -643984]$[400, 140, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zM_o4KZ6EeqIr7xwFiWQGQ" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zM_o4aZ6EeqIr7xwFiWQGQ" id="(0.6,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_z1-7gKZ6EeqIr7xwFiWQGQ" type="Generalization_Edge" source="_oe5-YKThEeqmTOsCAzVBxg" target="_sQ2WIKZ6EeqIr7xwFiWQGQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_z1_ikKZ6EeqIr7xwFiWQGQ" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z1_ikaZ6EeqIr7xwFiWQGQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_z1-7gaZ6EeqIr7xwFiWQGQ"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_z11KgKZ6EeqIr7xwFiWQGQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_z1-7gqZ6EeqIr7xwFiWQGQ" points="[600, 460, -643984, -643984]$[400, 140, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z2RPYKZ6EeqIr7xwFiWQGQ" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z2RPYaZ6EeqIr7xwFiWQGQ" id="(0.6,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_W-_1IKTlEeqmTOsCAzVBxg" type="PapyrusUMLProfileDiagram" name="Layer_weight_constraints" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_9z2S0KZ6EeqIr7xwFiWQGQ" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z2S0aZ6EeqIr7xwFiWQGQ" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z2S0qZ6EeqIr7xwFiWQGQ" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z2S06Z6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z2S1KZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z2S1aZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z2S1qZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z2S16Z6EeqIr7xwFiWQGQ" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z2S2KZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z2S2aZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z2S2qZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z2S26Z6EeqIr7xwFiWQGQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_SFqEcKThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z2S36Z6EeqIr7xwFiWQGQ" x="10" y="690"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9z254KZ6EeqIr7xwFiWQGQ" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z254aZ6EeqIr7xwFiWQGQ" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z254qZ6EeqIr7xwFiWQGQ" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z2546Z6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z255KZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z255aZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z255qZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z2556Z6EeqIr7xwFiWQGQ" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z256KZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z256aZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z256qZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z2566Z6EeqIr7xwFiWQGQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_p5ftEKThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z2576Z6EeqIr7xwFiWQGQ" x="430" y="470"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9z258KZ6EeqIr7xwFiWQGQ" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z258aZ6EeqIr7xwFiWQGQ" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z258qZ6EeqIr7xwFiWQGQ" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z2586Z6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z259KZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z259aZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z259qZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z2596Z6EeqIr7xwFiWQGQ" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z25-KZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z25-aZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z25-qZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z25-6Z6EeqIr7xwFiWQGQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_oe1s8KThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z25_6Z6EeqIr7xwFiWQGQ" x="550" y="470"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9z4IAKZ6EeqIr7xwFiWQGQ" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z4IAaZ6EeqIr7xwFiWQGQ" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z4IAqZ6EeqIr7xwFiWQGQ" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_9z4IA6Z6EeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_hrd0UKTkEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9z4IBKZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z4IBaZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z4IBqZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z4IB6Z6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z4ICKZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z4ICaZ6EeqIr7xwFiWQGQ" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z4ICqZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z4IC6Z6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z4IDKZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z4IDaZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_cxXR0KTkEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z4IEaZ6EeqIr7xwFiWQGQ" x="30" y="490"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9z4IFKZ6EeqIr7xwFiWQGQ" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z4IFaZ6EeqIr7xwFiWQGQ" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z4IFqZ6EeqIr7xwFiWQGQ" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z4IF6Z6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z4IGKZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z4IGaZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z4IGqZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z4IG6Z6EeqIr7xwFiWQGQ" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z4IHKZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z4IHaZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z4IHqZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z4IH6Z6EeqIr7xwFiWQGQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_s288sKThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z4II6Z6EeqIr7xwFiWQGQ" x="310" y="470"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9z4vEaZ6EeqIr7xwFiWQGQ" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z4vEqZ6EeqIr7xwFiWQGQ" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z4vE6Z6EeqIr7xwFiWQGQ" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_9z4vFKZ6EeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_YMFv0KTkEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9z4vFaZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z4vFqZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z4vF6Z6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z4vGKZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z4vGaZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z4vGqZ6EeqIr7xwFiWQGQ" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z4vG6Z6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z4vHKZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z4vHaZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z4vHqZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_T5LJIKTkEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z4vIqZ6EeqIr7xwFiWQGQ" x="170" y="250"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9z4vLKZ6EeqIr7xwFiWQGQ" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z4vLaZ6EeqIr7xwFiWQGQ" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z4vLqZ6EeqIr7xwFiWQGQ" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_9z4vL6Z6EeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_EO8W0KTiEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9z4vMKZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9z4vMaZ6EeqIr7xwFiWQGQ" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_H-FiEKTiEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9z4vMqZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z4vM6Z6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z4vNKZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z4vNaZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z4vNqZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z4vN6Z6EeqIr7xwFiWQGQ" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z4vOKZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z4vOaZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z4vOqZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z4vO6Z6EeqIr7xwFiWQGQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_Q5gaYKThEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z4vP6Z6EeqIr7xwFiWQGQ" x="150" y="690"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9z5WIKZ6EeqIr7xwFiWQGQ" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z5WIaZ6EeqIr7xwFiWQGQ" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z5WIqZ6EeqIr7xwFiWQGQ" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z5WI6Z6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z5WJKZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z5WJaZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z5WJqZ6EeqIr7xwFiWQGQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9z5WJ6Z6EeqIr7xwFiWQGQ" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9z5WKKZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9z5WKaZ6EeqIr7xwFiWQGQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9z5WKqZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z5WK6Z6EeqIr7xwFiWQGQ"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_sQtMMKZ6EeqIr7xwFiWQGQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9z5WL6Z6EeqIr7xwFiWQGQ" x="350" y="50"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_W-_1IaTlEeqmTOsCAzVBxg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_W-_1IqTlEeqmTOsCAzVBxg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_W-_1I6TlEeqmTOsCAzVBxg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_DtlO0KTlEeqmTOsCAzVBxg"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_DtlO0KTlEeqmTOsCAzVBxg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_9z2S4KZ6EeqIr7xwFiWQGQ" type="Generalization_Edge" source="_9z258KZ6EeqIr7xwFiWQGQ" target="_9z5WIKZ6EeqIr7xwFiWQGQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z2S4aZ6EeqIr7xwFiWQGQ" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9z2S4qZ6EeqIr7xwFiWQGQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9z2S46Z6EeqIr7xwFiWQGQ"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_z11KgKZ6EeqIr7xwFiWQGQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9z2S5KZ6EeqIr7xwFiWQGQ" points="[600, 460, -643984, -643984]$[400, 140, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9z2S5aZ6EeqIr7xwFiWQGQ" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9z2S5qZ6EeqIr7xwFiWQGQ" id="(0.6,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9z3g8KZ6EeqIr7xwFiWQGQ" type="Generalization_Edge" source="_9z4vLKZ6EeqIr7xwFiWQGQ" target="_9z4IAKZ6EeqIr7xwFiWQGQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z3g8aZ6EeqIr7xwFiWQGQ" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_9z3g8qZ6EeqIr7xwFiWQGQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9z3g86Z6EeqIr7xwFiWQGQ" x="-1" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9z3g9KZ6EeqIr7xwFiWQGQ"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_vNIpkKTkEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9z3g9aZ6EeqIr7xwFiWQGQ" points="[200, 680, -643984, -643984]$[140, 583, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9z3g9qZ6EeqIr7xwFiWQGQ" id="(0.4225352112676056,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9z3g96Z6EeqIr7xwFiWQGQ" id="(0.8333333333333334,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9z3g-KZ6EeqIr7xwFiWQGQ" type="Generalization_Edge" source="_9z254KZ6EeqIr7xwFiWQGQ" target="_9z5WIKZ6EeqIr7xwFiWQGQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z3g-aZ6EeqIr7xwFiWQGQ" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9z3g-qZ6EeqIr7xwFiWQGQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9z3g-6Z6EeqIr7xwFiWQGQ"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_zMJUUKZ6EeqIr7xwFiWQGQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9z3g_KZ6EeqIr7xwFiWQGQ" points="[480, 460, -643984, -643984]$[400, 140, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9z3g_aZ6EeqIr7xwFiWQGQ" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9z3g_qZ6EeqIr7xwFiWQGQ" id="(0.6,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9z3g_6Z6EeqIr7xwFiWQGQ" type="Generalization_Edge" source="_9z4vEaZ6EeqIr7xwFiWQGQ" target="_9z5WIKZ6EeqIr7xwFiWQGQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z3hAKZ6EeqIr7xwFiWQGQ" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9z3hAaZ6EeqIr7xwFiWQGQ" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9z3hAqZ6EeqIr7xwFiWQGQ"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_ymebcKZ6EeqIr7xwFiWQGQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9z3hA6Z6EeqIr7xwFiWQGQ" points="[240, 240, -643984, -643984]$[380, 140, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9z3hBKZ6EeqIr7xwFiWQGQ" id="(0.5970149253731343,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9z3hBaZ6EeqIr7xwFiWQGQ" id="(0.4,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9z3hBqZ6EeqIr7xwFiWQGQ" type="Generalization_Edge" source="_9z2S0KZ6EeqIr7xwFiWQGQ" target="_9z4IAKZ6EeqIr7xwFiWQGQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z3hB6Z6EeqIr7xwFiWQGQ" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_9z3hCKZ6EeqIr7xwFiWQGQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9z3hCaZ6EeqIr7xwFiWQGQ" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9z3hCqZ6EeqIr7xwFiWQGQ"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_vvr9AKTkEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9z3hC6Z6EeqIr7xwFiWQGQ" points="[60, 680, -643984, -643984]$[80, 583, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9z3hDKZ6EeqIr7xwFiWQGQ" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9z3hDaZ6EeqIr7xwFiWQGQ" id="(0.4166666666666667,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9z4vJKZ6EeqIr7xwFiWQGQ" type="Generalization_Edge" source="_9z4IFKZ6EeqIr7xwFiWQGQ" target="_9z4vEaZ6EeqIr7xwFiWQGQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z4vJaZ6EeqIr7xwFiWQGQ" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_9z4vJqZ6EeqIr7xwFiWQGQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9z4vJ6Z6EeqIr7xwFiWQGQ" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9z4vKKZ6EeqIr7xwFiWQGQ"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_ZkPOgKTkEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9z4vKaZ6EeqIr7xwFiWQGQ" points="[560, 460, -643984, -643984]$[400, 443, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9z4vKqZ6EeqIr7xwFiWQGQ" id="(0.2,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9z4vK6Z6EeqIr7xwFiWQGQ" id="(0.5970149253731343,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9z4vQKZ6EeqIr7xwFiWQGQ" type="Generalization_Edge" source="_9z4IAKZ6EeqIr7xwFiWQGQ" target="_9z4vEaZ6EeqIr7xwFiWQGQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9z4vQaZ6EeqIr7xwFiWQGQ" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_9z4vQqZ6EeqIr7xwFiWQGQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9z4vQ6Z6EeqIr7xwFiWQGQ" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9z4vRKZ6EeqIr7xwFiWQGQ"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_1Qw_8KTkEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9z4vRaZ6EeqIr7xwFiWQGQ" points="[140, 480, -643984, -643984]$[200, 343, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9z4vRqZ6EeqIr7xwFiWQGQ" id="(0.8333333333333334,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9z4vR6Z6EeqIr7xwFiWQGQ" id="(0.29850746268656714,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_wSAfkKTnEeqmTOsCAzVBxg" type="PapyrusUMLProfileDiagram" name="Layer_weight_regularizers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_0kKRQKTnEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0kK4UKTnEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0kK4UaTnEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0kK4UqTnEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0kK4U6TnEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0kK4VKTnEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0kK4VaTnEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0kK4VqTnEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0kK4V6TnEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0kK4WKTnEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0kK4WaTnEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0kK4WqTnEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_0kGm4KTnEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0kKRQaTnEeqmTOsCAzVBxg" x="40" y="380"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PhR_AKToEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PhSmEaToEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PhSmEqToEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PhSmE6ToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PhSmFKToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PhSmFaToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PhSmFqToEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PhSmF6ToEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PhSmGKToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PhSmGaToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PhSmGqToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PhSmG6ToEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_PhQJ0KToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PhSmEKToEeqmTOsCAzVBxg" x="380" y="380"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_QuL3AKToEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QuL3AqToEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QuL3A6ToEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QuL3BKToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QuL3BaToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QuL3BqToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QuL3B6ToEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_QuL3CKToEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_QuL3CaToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QuL3CqToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QuL3C6ToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QuL3DKToEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_QuKB0KToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QuL3AaToEeqmTOsCAzVBxg" x="220" y="380"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_smfaoKToEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_smgBsKToEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_smgBsaToEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_yJ9qQKToEeqmTOsCAzVBxg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_yJ2VgKToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_yJ9qQaToEeqmTOsCAzVBxg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_smgBsqToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_smgBs6ToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_smgBtKToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_smgBtaToEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_smgBtqToEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_smgBt6ToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_smgBuKToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_smgBuaToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_smgBuqToEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_smezkKToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_smfaoaToEeqmTOsCAzVBxg" x="140" y="220"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_vbyMwKToEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_vbyMwqToEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vbyMw6ToEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_zAfpoKToEeqmTOsCAzVBxg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_zAXt0KToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zAfpoaToEeqmTOsCAzVBxg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vbyMxKToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vbyMxaToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vbyMxqToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vbyMx6ToEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_vbyMyKToEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_vbyMyaToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_vbyMyqToEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_vbyMy6ToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vbyMzKToEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_vbw-oKToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vbyMwaToEeqmTOsCAzVBxg" x="360" y="220"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_wSAfkaTnEeqmTOsCAzVBxg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_wSAfkqTnEeqmTOsCAzVBxg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_wSAfk6TnEeqmTOsCAzVBxg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_2EVWAK8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_8VxW8KToEeqmTOsCAzVBxg" type="Generalization_Edge" source="_0kKRQKTnEeqmTOsCAzVBxg" target="_smfaoKToEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8Vx-AKToEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8Vx-AaToEeqmTOsCAzVBxg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8VxW8aToEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_8VmX0KToEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8VxW8qToEeqmTOsCAzVBxg" points="[120, 380, -643984, -643984]$[180, 323, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8WCcsKToEeqmTOsCAzVBxg" id="(0.8,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8WCcsaToEeqmTOsCAzVBxg" id="(0.4,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_8pp8QKToEeqmTOsCAzVBxg" type="Generalization_Edge" source="_PhR_AKToEeqmTOsCAzVBxg" target="_vbyMwKToEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8pp8Q6ToEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_8pp8RKToEeqmTOsCAzVBxg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8pp8QaToEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_8pjOkKToEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8pp8QqToEeqmTOsCAzVBxg" points="[440, 380, -643984, -643984]$[400, 323, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8p1icKToEeqmTOsCAzVBxg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8p1icaToEeqmTOsCAzVBxg" id="(0.4,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_98O-cKToEeqmTOsCAzVBxg" type="Generalization_Edge" source="_QuL3AKToEeqmTOsCAzVBxg" target="_smfaoKToEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_98O-c6ToEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_98O-dKToEeqmTOsCAzVBxg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_98O-caToEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_98EmYKToEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_98O-cqToEeqmTOsCAzVBxg" points="[260, 380, -643984, -643984]$[200, 323, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_98Z9kKToEeqmTOsCAzVBxg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_98Z9kaToEeqmTOsCAzVBxg" id="(0.6,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-X18YKToEeqmTOsCAzVBxg" type="Generalization_Edge" source="_QuL3AKToEeqmTOsCAzVBxg" target="_vbyMwKToEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-X2jcKToEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-X2jcaToEeqmTOsCAzVBxg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-X18YaToEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_-XpvIKToEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-X18YqToEeqmTOsCAzVBxg" points="[280, 380, -643984, -643984]$[380, 323, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-YF0AKToEeqmTOsCAzVBxg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-YF0AaToEeqmTOsCAzVBxg" id="(0.2,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_crFRYKTpEeqmTOsCAzVBxg" type="PapyrusUMLProfileDiagram" name="Layer_weight_regularizers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_f-SukKTpEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_f-SukaTpEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f-SukqTpEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f-Suk6TpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f-SulKTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f-SulaTpEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-SulqTpEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f-Sul6TpEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f-SumKTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f-SumaTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f-SumqTpEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-Sum6TpEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_PhQJ0KToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-Sun6TpEeqmTOsCAzVBxg" x="390" y="390"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f-TVoKTpEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_f-TVoaTpEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f-TVoqTpEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_f-TVo6TpEeqmTOsCAzVBxg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_zAXt0KToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f-TVpKTpEeqmTOsCAzVBxg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f-TVpaTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f-TVpqTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f-TVp6TpEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-TVqKTpEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f-TVqaTpEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f-TVqqTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f-TVq6TpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f-TVrKTpEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-TVraTpEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_vbw-oKToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-TVsaTpEeqmTOsCAzVBxg" x="370" y="230"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f-T8sKTpEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_f-T8saTpEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f-T8sqTpEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f-T8s6TpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f-T8tKTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f-T8taTpEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-T8tqTpEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f-T8t6TpEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f-T8uKTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f-T8uaTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f-T8uqTpEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-T8u6TpEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_0kGm4KTnEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-T8v6TpEeqmTOsCAzVBxg" x="50" y="390"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f-Ujx6TpEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_f-UjyKTpEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f-UjyaTpEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_f-UjyqTpEeqmTOsCAzVBxg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_yJ2VgKToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f-Ujy6TpEeqmTOsCAzVBxg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f-UjzKTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f-UjzaTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f-UjzqTpEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-Ujz6TpEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f-Uj0KTpEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f-Uj0aTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f-Uj0qTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f-Uj06TpEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-Uj1KTpEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_smezkKToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-Uj2KTpEeqmTOsCAzVBxg" x="150" y="230"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_f-Uj6KTpEeqmTOsCAzVBxg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_f-Uj6aTpEeqmTOsCAzVBxg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f-Uj6qTpEeqmTOsCAzVBxg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f-Uj66TpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f-Uj7KTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f-Uj7aTpEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-Uj7qTpEeqmTOsCAzVBxg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_f-Uj76TpEeqmTOsCAzVBxg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_f-Uj8KTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_f-VK0KTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_f-VK0aTpEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-VK0qTpEeqmTOsCAzVBxg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_QuKB0KToEeqmTOsCAzVBxg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-VK1qTpEeqmTOsCAzVBxg" x="230" y="390"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_crFRYaTpEeqmTOsCAzVBxg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_crFRYqTpEeqmTOsCAzVBxg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_crFRY6TpEeqmTOsCAzVBxg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_X5a5MKTpEeqmTOsCAzVBxg"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_X5a5MKTpEeqmTOsCAzVBxg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_f-T8wKTpEeqmTOsCAzVBxg" type="Generalization_Edge" source="_f-T8sKTpEeqmTOsCAzVBxg" target="_f-Ujx6TpEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_f-T8waTpEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f-T8wqTpEeqmTOsCAzVBxg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_f-T8w6TpEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_8VmX0KToEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f-T8xKTpEeqmTOsCAzVBxg" points="[120, 380, -643984, -643984]$[180, 323, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f-T8xaTpEeqmTOsCAzVBxg" id="(0.8,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f-T8xqTpEeqmTOsCAzVBxg" id="(0.4,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_f-UjwKTpEeqmTOsCAzVBxg" type="Generalization_Edge" source="_f-Uj6KTpEeqmTOsCAzVBxg" target="_f-TVoKTpEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_f-UjwaTpEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f-UjwqTpEeqmTOsCAzVBxg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_f-Ujw6TpEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_-XpvIKToEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f-UjxKTpEeqmTOsCAzVBxg" points="[280, 380, -643984, -643984]$[380, 323, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f-UjxaTpEeqmTOsCAzVBxg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f-UjxqTpEeqmTOsCAzVBxg" id="(0.2,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_f-Uj2qTpEeqmTOsCAzVBxg" type="Generalization_Edge" source="_f-Uj6KTpEeqmTOsCAzVBxg" target="_f-Ujx6TpEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_f-Uj26TpEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f-Uj3KTpEeqmTOsCAzVBxg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_f-Uj3aTpEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_98EmYKToEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f-Uj3qTpEeqmTOsCAzVBxg" points="[260, 380, -643984, -643984]$[200, 323, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f-Uj36TpEeqmTOsCAzVBxg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f-Uj4KTpEeqmTOsCAzVBxg" id="(0.6,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_f-Uj4aTpEeqmTOsCAzVBxg" type="Generalization_Edge" source="_f-SukKTpEeqmTOsCAzVBxg" target="_f-TVoKTpEeqmTOsCAzVBxg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_f-Uj4qTpEeqmTOsCAzVBxg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_f-Uj46TpEeqmTOsCAzVBxg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_f-Uj5KTpEeqmTOsCAzVBxg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_8pjOkKToEeqmTOsCAzVBxg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f-Uj5aTpEeqmTOsCAzVBxg" points="[440, 380, -643984, -643984]$[400, 323, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f-Uj5qTpEeqmTOsCAzVBxg" id="(0.6,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_f-Uj56TpEeqmTOsCAzVBxg" id="(0.4,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_zDd5UKWREeq2dLYfuMvqgg" type="PapyrusUMLProfileDiagram" name="Layer_weight_initializers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_-KB-EKWREeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-KDzQKWREeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-KDzQaWREeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-KDzQqWREeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-KDzQ6WREeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-KDzRKWREeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-KDzRaWREeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-KDzRqWREeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-KDzR6WREeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-KDzSKWREeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-KDzSaWREeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-KDzSqWREeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_-JzUkKWREeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-KB-EaWREeq2dLYfuMvqgg" x="1620" y="400"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Gws48KWSEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_GwtgAKWSEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GwtgAaWSEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_IifmsKWSEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_IiUAgKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IifmsaWSEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JNhgsKWSEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_JNazAKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JNhgsaWSEeq2dLYfuMvqgg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GwtgAqWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GwtgA6WSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GwtgBKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GwtgBaWSEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_GwuHEKWSEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_GwuHEaWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_GwuHEqWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_GwuHE6WSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GwuHFKWSEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_GwoAcKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Gws48aWSEeq2dLYfuMvqgg" x="1000" y="220"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Keup4KWSEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_KevQ8KWSEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Kev4AKWSEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Kev4AaWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Kev4AqWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Kev4A6WSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kev4BKWSEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Kev4BaWSEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Kev4BqWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Kev4B6WSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Kev4CKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kev4CaWSEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_KermkKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Keup4aWSEeq2dLYfuMvqgg" x="1360" y="400"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OfGvEKWSEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OfGvEqWSEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OfHWIKWSEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OfHWIaWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OfHWIqWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OfHWI6WSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OfHWJKWSEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OfHWJaWSEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OfHWJqWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OfHWJ6WSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OfHWKKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OfHWKaWSEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_OfDEsKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OfGvEaWSEeq2dLYfuMvqgg" x="-180" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ZE3z4KWSEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ZE3z4qWSEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZE4a8KWSEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZE4a8aWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZE4a8qWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZE4a86WSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZE4a9KWSEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ZE4a9aWSEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ZE4a9qWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ZE4a96WSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ZE4a-KWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZE4a-aWSEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ZEzicKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZE3z4aWSEeq2dLYfuMvqgg" x="-340" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_e62IwKWSEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_e62v0KWSEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_e62v0aWSEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_e62v0qWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_e62v06WSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_e62v1KWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e62v1aWSEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_e62v1qWSEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_e62v16WSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_e62v2KWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_e62v2aWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e62v2qWSEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_e6wCIKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e62IwaWSEeq2dLYfuMvqgg" x="1800" y="220"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hxV0wKWSEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_hxV0wqWSEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hxWb0KWSEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hxWb0aWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hxWb0qWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hxWb06WSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hxWb1KWSEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_hxWb1aWSEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_hxWb1qWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_hxWb16WSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_hxWb2KWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hxWb2aWSEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_hxQVMKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hxV0waWSEeq2dLYfuMvqgg" x="1220" y="220"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lmhWkKWSEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lmhWkqWSEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lmhWk6WSEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lmhWlKWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lmhWlaWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lmhWlqWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lmhWl6WSEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lmhWmKWSEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lmhWmaWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lmhWmqWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lmhWm6WSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lmhWnKWSEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_lmeTQKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lmhWkaWSEeq2dLYfuMvqgg" x="400" y="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nCTYEKWSEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nCTYEqWSEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nCTYE6WSEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nCTYFKWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nCTYFaWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nCTYFqWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nCTYF6WSEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nCTYGKWSEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nCTYGaWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nCTYGqWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nCTYG6WSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nCTYHKWSEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_nCPGoKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nCTYEaWSEeq2dLYfuMvqgg" x="540" y="200"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oi62QKWSEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oi7dUKWSEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_oi7dUaWSEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_xJGB4KWSEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_xIu1gKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xJGB4aWSEeq2dLYfuMvqgg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_oi7dUqWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oi7dU6WSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oi7dVKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oi7dVaWSEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_oi7dVqWSEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_oi7dV6WSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oi7dWKWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oi7dWaWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oi7dWqWSEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_oi19wKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oi62QaWSEeq2dLYfuMvqgg" x="-20" y="40"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yti3MKWSEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_yti3MqWSEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yti3M6WSEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_z0xlAKWSEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_z0htYKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z0xlAaWSEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0X_m0KWSEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_0XpokKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0X_m0aWSEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0qo2AKWSEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_0qcowKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0qo2AaWSEeq2dLYfuMvqgg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yti3NKWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yti3NaWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yti3NqWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yti3N6WSEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ytjeQKWSEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ytjeQaWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ytjeQqWSEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ytjeQ6WSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ytjeRKWSEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ytfM0KWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yti3MaWSEeq2dLYfuMvqgg" x="780" y="220"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_IHyLMKWTEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_IHyLMqWTEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IHyLM6WTEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_L5KyIKWTEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_L46TcKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_L5KyIaWTEeq2dLYfuMvqgg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IHyLNKWTEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IHyLNaWTEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IHyLNqWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IHyLN6WTEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_IHyLOKWTEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_IHyLOaWTEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_IHyLOqWTEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_IHyLO6WTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IHyLPKWTEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_IHtSsKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IHyLMaWTEeq2dLYfuMvqgg" x="400"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OIV_cKWTEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OIWmgKWTEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OIWmgaWTEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_R5J-oKWTEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_R4qPYKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R5J-oaWTEeq2dLYfuMvqgg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OIWmgqWTEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OIWmg6WTEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OIWmhKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OIWmhaWTEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OIWmhqWTEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OIWmh6WTEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OIWmiKWTEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OIWmiaWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OIWmiqWTEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_OISVEKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OIV_caWTEeq2dLYfuMvqgg" x="980" y="-20"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_iKZYgKWTEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_iKZ_kKWTEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iKZ_kaWTEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_lIObkKWTEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_lHusUKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lIObkaWTEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lmo14KWTEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_lmazcKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lmo14aWTEeq2dLYfuMvqgg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iKZ_kqWTEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iKZ_k6WTEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iKZ_lKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iKZ_laWTEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_iKZ_lqWTEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_iKZ_l6WTEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_iKZ_mKWTEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_iKZ_maWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iKZ_mqWTEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_iKWVMKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iKZYgaWTEeq2dLYfuMvqgg" x="1480" y="220"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_zDd5UaWREeq2dLYfuMvqgg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_zDd5UqWREeq2dLYfuMvqgg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_zDd5U6WREeq2dLYfuMvqgg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ </styles>
+ <styles xmi:type="notation:EObjectListValueStyle" xmi:id="_3GTJUK8YEeqhVOlV64dXmA" name="css_stylesheets" eObjectListValue="_mci3oJm1Eeq8nv7tV9lOqQ"/>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_IDYhIH13EeqSHNFOHg2_Jw"/>
+ <edges xmi:type="notation:Connector" xmi:id="_YcE5EKWTEeq2dLYfuMvqgg" type="Generalization_Edge" source="_hxV0wKWSEeq2dLYfuMvqgg" target="_OIV_cKWTEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_YcE5E6WTEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3MJUAKWTEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YcE5FKWTEeq2dLYfuMvqgg" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YcE5EaWTEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_YbtssKWTEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YcE5EqWTEeq2dLYfuMvqgg" points="[1160, 160, -643984, -643984]$[1180, 103, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Yc-Q8KWTEeq2dLYfuMvqgg" id="(0.7453416149068323,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Yc-Q8aWTEeq2dLYfuMvqgg" id="(0.7453416149068323,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_aA9zQKWTEeq2dLYfuMvqgg" type="Generalization_Edge" source="_Gws48KWSEeq2dLYfuMvqgg" target="_OIV_cKWTEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_aA9zQ6WTEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Koc7sKWUEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aA9zRKWTEeq2dLYfuMvqgg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_aA9zQaWTEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_aApDIKWTEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aA9zQqWTEeq2dLYfuMvqgg" points="[940, 160, -643984, -643984]$[1140, 103, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aBW00KWTEeq2dLYfuMvqgg" id="(0.8,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_aBW00aWTEeq2dLYfuMvqgg" id="(0.6211180124223602,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_dNI0UKWTEeq2dLYfuMvqgg" type="Generalization_Edge" source="_e62IwKWSEeq2dLYfuMvqgg" target="_OIV_cKWTEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_dNJbYKWTEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_HWmJYKWUEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_dNJbYaWTEeq2dLYfuMvqgg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dNI0UaWTEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_dM91MKWTEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dNI0UqWTEeq2dLYfuMvqgg" points="[1480, 200, -643984, -643984]$[1240, 103, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dNn8gKWTEeq2dLYfuMvqgg" id="(0.37267080745341613,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dNn8gaWTEeq2dLYfuMvqgg" id="(0.8695652173913043,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_nvD68KWTEeq2dLYfuMvqgg" type="Generalization_Edge" source="_-KB-EKWREeq2dLYfuMvqgg" target="_iKZYgKWTEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nvD686WTEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_FMZisKWUEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_nvD69KWTEeq2dLYfuMvqgg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_nvD68aWTEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_nuodIKWTEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nvD68qWTEeq2dLYfuMvqgg" points="[1680, 400, -643984, -643984]$[1620, 339, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nvoisKWTEeq2dLYfuMvqgg" id="(0.3488372093023256,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nvoisaWTEeq2dLYfuMvqgg" id="(0.813953488372093,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oMmykKWTEeq2dLYfuMvqgg" type="Generalization_Edge" source="_Keup4KWSEeq2dLYfuMvqgg" target="_iKZYgKWTEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oMmyk6WTEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_FMm-EKWUEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oMnZoKWTEeq2dLYfuMvqgg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oMmykaWTEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_oMXiAKWTEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oMmykqWTEeq2dLYfuMvqgg" points="[1480, 400, -643984, -643984]$[1520, 339, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oM-mAKWTEeq2dLYfuMvqgg" id="(0.6976744186046512,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oM-mAaWTEeq2dLYfuMvqgg" id="(0.23255813953488372,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_4drNUKWTEeq2dLYfuMvqgg" type="Generalization_Edge" source="_yti3MKWSEeq2dLYfuMvqgg" target="_OIV_cKWTEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4drNU6WTEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_LQucoKWUEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4dr0YKWTEeq2dLYfuMvqgg" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4drNUaWTEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_4dWdMKWTEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4drNUqWTEeq2dLYfuMvqgg" points="[740, 160, -643984, -643984]$[1120, 103, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4egTwKWTEeq2dLYfuMvqgg" id="(0.8080808080808081,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4eg60KWTEeq2dLYfuMvqgg" id="(0.4968944099378882,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DYiYYKWUEeq2dLYfuMvqgg" type="Generalization_Edge" source="_lmhWkKWSEeq2dLYfuMvqgg" target="_IHyLMKWTEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DYi_cKWUEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_PX4fQKWUEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DYi_caWUEeq2dLYfuMvqgg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_DYiYYaWUEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_DYQrkKWUEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DYiYYqWUEeq2dLYfuMvqgg" points="[440, 200, -643984, -643984]$[440, 143, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DY8oEKWUEeq2dLYfuMvqgg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DY9PIKWUEeq2dLYfuMvqgg" id="(0.25,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_MGr0QKWUEeq2dLYfuMvqgg" type="Generalization_Edge" source="_iKZYgKWTEeq2dLYfuMvqgg" target="_OIV_cKWTEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_MGr0Q6WUEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Ol620KWUEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MGr0RKWUEeq2dLYfuMvqgg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_MGr0QaWUEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_MGbVkKWUEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MGr0QqWUEeq2dLYfuMvqgg" points="[1540, 220, -643984, -643984]$[1200, 103, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MHEOwKWUEeq2dLYfuMvqgg" id="(0.3488372093023256,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MHEOwaWUEeq2dLYfuMvqgg" id="(0.7453416149068323,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Q3bmcKWUEeq2dLYfuMvqgg" type="Generalization_Edge" source="_nCTYEKWSEeq2dLYfuMvqgg" target="_IHyLMKWTEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Q3bmc6WUEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_WILHUKWUEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Q3bmdKWUEeq2dLYfuMvqgg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Q3bmcaWUEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_Q3KgsKWUEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q3bmcqWUEeq2dLYfuMvqgg" points="[600, 200, -643984, -643984]$[520, 103, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q37VsKWUEeq2dLYfuMvqgg" id="(0.37267080745341613,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q378wKWUEeq2dLYfuMvqgg" id="(0.75,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_WydacKWUEeq2dLYfuMvqgg" type="Generalization_Edge" source="_nCTYEKWSEeq2dLYfuMvqgg" target="_OIV_cKWTEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Wydac6WUEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_WydadKWUEeq2dLYfuMvqgg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_WydacaWUEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_WyCjsKWUEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WydacqWUEeq2dLYfuMvqgg" points="[660, 200, -643984, -643984]$[1000, 83, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wy-X0KWUEeq2dLYfuMvqgg" id="(0.7453416149068323,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Wy-X0aWUEeq2dLYfuMvqgg" id="(0.12422360248447205,1.0)"/>
+ </edges>
+ </notation:Diagram>
+ <notation:Diagram xmi:id="_bdoToKWVEeq2dLYfuMvqgg" type="PapyrusUMLProfileDiagram" name="Layer_weight_initializers" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_gtKTkKWVEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtKTkaWVEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtKTkqWVEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_gtKTk6WVEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_z0htYKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtKTlKWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtKTlaWVEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_0XpokKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtKTlqWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtKTl6WVEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_0qcowKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtKTmKWVEeq2dLYfuMvqgg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtKTmaWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtKTmqWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtKTm6WVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtKTnKWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtKTnaWVEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtKTnqWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtKTn6WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtKToKWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtKToaWVEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ytfM0KWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtKTpaWVEeq2dLYfuMvqgg" x="790" y="230"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtKTpqWVEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtK6oKWVEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtK6oaWVEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtK6oqWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtK6o6WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtK6pKWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtK6paWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtK6pqWVEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtK6p6WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtK6qKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtK6qaWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtK6qqWVEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_OfDEsKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtK6rqWVEeq2dLYfuMvqgg" x="-170" y="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtMIwKWVEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtMIwaWVEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtMIwqWVEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtMIw6WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtMIxKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtMIxaWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtMIxqWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtMIx6WVEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtMIyKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtMIyaWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtMIyqWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtMIy6WVEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_KermkKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtMIz6WVEeq2dLYfuMvqgg" x="1370" y="410"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtMv0KWVEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtMv0aWVEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtMv0qWVEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_gtMv06WVEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_L46TcKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtMv1KWVEeq2dLYfuMvqgg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtMv1aWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtMv1qWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtMv16WVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtMv2KWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtMv2aWVEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtMv2qWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtMv26WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtMv3KWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtMv3aWVEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_IHtSsKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtMv4aWVEeq2dLYfuMvqgg" x="410" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtPMEKWVEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtPMEaWVEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtPMEqWVEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_gtPME6WVEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_xIu1gKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtPMFKWVEeq2dLYfuMvqgg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtPMFaWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtPMFqWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtPMF6WVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtPMGKWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtPMGaWVEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtPMGqWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtPMG6WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtPMHKWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtPMHaWVEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_oi19wKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtPMIaWVEeq2dLYfuMvqgg" x="-10" y="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtPzIKWVEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtPzIaWVEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtPzIqWVEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtPzI6WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtPzJKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtPzJaWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtPzJqWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtPzJ6WVEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtPzKKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtPzKaWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtPzKqWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtPzK6WVEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_e6wCIKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtPzL6WVEeq2dLYfuMvqgg" x="1810" y="230"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtQaMKWVEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtQaMaWVEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtQaMqWVEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtQaM6WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtQaNKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtQaNaWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtQaNqWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtQaN6WVEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtQaOKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtQaOaWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtQaOqWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtQaO6WVEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_nCPGoKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtQaP6WVEeq2dLYfuMvqgg" x="550" y="210"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtRBSKWVEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtRBSaWVEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtRBSqWVEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtRBS6WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtRBTKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtRBTaWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtRBTqWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtRBT6WVEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtRBUKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtRBUaWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtRBUqWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtRBU6WVEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_hxQVMKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtRBV6WVEeq2dLYfuMvqgg" x="1230" y="230"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtRoUqWVEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtRoU6WVEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtSPYKWVEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtSPYaWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtSPYqWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtSPY6WVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtSPZKWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtSPZaWVEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtSPZqWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtSPZ6WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtSPaKWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtSPaaWVEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_ZEzicKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtSPbaWVEeq2dLYfuMvqgg" x="-330" y="50"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtS2cKWVEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtS2caWVEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtS2cqWVEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_gtS2c6WVEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_IiUAgKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtS2dKWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtS2daWVEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_JNazAKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtS2dqWVEeq2dLYfuMvqgg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtS2d6WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtS2eKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtS2eaWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtS2eqWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtS2e6WVEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtS2fKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtS2faWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtS2fqWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtS2f6WVEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_GwoAcKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtS2g6WVEeq2dLYfuMvqgg" x="1010" y="230"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtTdgKWVEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtTdgaWVEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtTdgqWVEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_gtTdg6WVEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_R4qPYKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtTdhKWVEeq2dLYfuMvqgg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtTdhaWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtTdhqWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtTdh6WVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtTdiKWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtTdiaWVEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtTdiqWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtTdi6WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtTdjKWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtTdjaWVEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_OISVEKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtTdkaWVEeq2dLYfuMvqgg" x="990" y="-10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtUEkKWVEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtUEkaWVEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtUEkqWVEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtUEk6WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtUElKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtUElaWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtUElqWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtUEl6WVEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtUEmKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtUEmaWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtUEmqWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtUEm6WVEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_lmeTQKWSEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtUEn6WVEeq2dLYfuMvqgg" x="410" y="210"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtUroKWVEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtUroaWVEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtUroqWVEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtUro6WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtUrpKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtUrpaWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtUrpqWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtUrp6WVEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtUrqKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtUrqaWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtUrqqWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtUrq6WVEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_-JzUkKWREeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtUrr6WVEeq2dLYfuMvqgg" x="1630" y="410"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtVSsKWVEeq2dLYfuMvqgg" type="Stereotype_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtVSsaWVEeq2dLYfuMvqgg" type="Stereotype_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtVSsqWVEeq2dLYfuMvqgg" type="Stereotype_AttributeCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_gtVSs6WVEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_lHusUKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtVStKWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_gtVStaWVEeq2dLYfuMvqgg" type="Property_ClassAttributeLabel">
+ <element xmi:type="uml:Property" href="AIML.profile.uml#_lmazcKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtVStqWVEeq2dLYfuMvqgg"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtVSt6WVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtVSuKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtVSuaWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtVSuqWVEeq2dLYfuMvqgg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_gtVSu6WVEeq2dLYfuMvqgg" type="Stereotype_OperationCompartment">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_gtVSvKWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_gtVSvaWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_gtVSvqWVEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtVSv6WVEeq2dLYfuMvqgg"/>
+ </children>
+ <element xmi:type="uml:Stereotype" href="AIML.profile.uml#_iKWVMKWTEeq2dLYfuMvqgg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gtVSw6WVEeq2dLYfuMvqgg" x="1490" y="230"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_bdoToaWVEeq2dLYfuMvqgg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_bdoToqWVEeq2dLYfuMvqgg"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_bdoTo6WVEeq2dLYfuMvqgg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+ <owner xmi:type="uml:Profile" href="AIML.profile.uml#_ZgMWkKWVEeq2dLYfuMvqgg"/>
+ </styles>
+ <element xmi:type="uml:Profile" href="AIML.profile.uml#_ZgMWkKWVEeq2dLYfuMvqgg"/>
+ <edges xmi:type="notation:Connector" xmi:id="_gtIeYKWVEeq2dLYfuMvqgg" type="Generalization_Edge" source="_gtKTkKWVEeq2dLYfuMvqgg" target="_gtTdgKWVEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtIeYaWVEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_gtIeYqWVEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtIeY6WVEeq2dLYfuMvqgg" x="-1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gtIeZKWVEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_4dWdMKWTEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gtIeZaWVEeq2dLYfuMvqgg" points="[740, 160, -643984, -643984]$[1120, 103, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtIeZqWVEeq2dLYfuMvqgg" id="(0.8080808080808081,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtIeZ6WVEeq2dLYfuMvqgg" id="(0.4968944099378882,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gtK6r6WVEeq2dLYfuMvqgg" type="Generalization_Edge" source="_gtS2cKWVEeq2dLYfuMvqgg" target="_gtTdgKWVEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtK6sKWVEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_gtK6saWVEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtK6sqWVEeq2dLYfuMvqgg" x="1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gtK6s6WVEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_aApDIKWTEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gtK6tKWVEeq2dLYfuMvqgg" points="[940, 160, -643984, -643984]$[1140, 103, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtK6taWVEeq2dLYfuMvqgg" id="(0.8,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtK6tqWVEeq2dLYfuMvqgg" id="(0.6211180124223602,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gtLhsKWVEeq2dLYfuMvqgg" type="Generalization_Edge" source="_gtUroKWVEeq2dLYfuMvqgg" target="_gtVSsKWVEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtLhsaWVEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_gtLhsqWVEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtLhs6WVEeq2dLYfuMvqgg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gtLhtKWVEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_nuodIKWTEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gtLhtaWVEeq2dLYfuMvqgg" points="[1680, 400, -643984, -643984]$[1620, 339, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtLhtqWVEeq2dLYfuMvqgg" id="(0.3488372093023256,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtLht6WVEeq2dLYfuMvqgg" id="(0.813953488372093,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gtOlAaWVEeq2dLYfuMvqgg" type="Generalization_Edge" source="_gtMIwKWVEeq2dLYfuMvqgg" target="_gtVSsKWVEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtOlAqWVEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_gtOlA6WVEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtOlBKWVEeq2dLYfuMvqgg" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gtOlBaWVEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_oMXiAKWTEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gtOlBqWVEeq2dLYfuMvqgg" points="[1480, 400, -643984, -643984]$[1520, 339, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtOlB6WVEeq2dLYfuMvqgg" id="(0.6976744186046512,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtOlCKWVEeq2dLYfuMvqgg" id="(0.23255813953488372,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gtPMIqWVEeq2dLYfuMvqgg" type="Generalization_Edge" source="_gtPzIKWVEeq2dLYfuMvqgg" target="_gtTdgKWVEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtPMI6WVEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_gtPMJKWVEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtPMJaWVEeq2dLYfuMvqgg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gtPMJqWVEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_dM91MKWTEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gtPMJ6WVEeq2dLYfuMvqgg" points="[1480, 200, -643984, -643984]$[1240, 103, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtPMKKWVEeq2dLYfuMvqgg" id="(0.37267080745341613,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtPMKaWVEeq2dLYfuMvqgg" id="(0.8695652173913043,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gtRBQKWVEeq2dLYfuMvqgg" type="Generalization_Edge" source="_gtVSsKWVEeq2dLYfuMvqgg" target="_gtTdgKWVEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtRBQaWVEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_gtRBQqWVEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtRBQ6WVEeq2dLYfuMvqgg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gtRBRKWVEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_MGbVkKWUEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gtRBRaWVEeq2dLYfuMvqgg" points="[1540, 220, -643984, -643984]$[1200, 103, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtRBRqWVEeq2dLYfuMvqgg" id="(0.3488372093023256,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtRBR6WVEeq2dLYfuMvqgg" id="(0.7453416149068323,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gtSPbqWVEeq2dLYfuMvqgg" type="Generalization_Edge" source="_gtQaMKWVEeq2dLYfuMvqgg" target="_gtTdgKWVEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtSPb6WVEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtSPcKWVEeq2dLYfuMvqgg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gtSPcaWVEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_WyCjsKWUEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gtSPcqWVEeq2dLYfuMvqgg" points="[660, 200, -643984, -643984]$[1000, 83, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtSPc6WVEeq2dLYfuMvqgg" id="(0.7453416149068323,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtSPdKWVEeq2dLYfuMvqgg" id="(0.12422360248447205,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gtS2hKWVEeq2dLYfuMvqgg" type="Generalization_Edge" source="_gtQaMKWVEeq2dLYfuMvqgg" target="_gtMv0KWVEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtS2haWVEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_gtS2hqWVEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtS2h6WVEeq2dLYfuMvqgg" x="-1" y="58"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gtS2iKWVEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_Q3KgsKWUEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gtS2iaWVEeq2dLYfuMvqgg" points="[600, 200, -643984, -643984]$[520, 103, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtS2iqWVEeq2dLYfuMvqgg" id="(0.37267080745341613,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtS2i6WVEeq2dLYfuMvqgg" id="(0.75,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gtTdkqWVEeq2dLYfuMvqgg" type="Generalization_Edge" source="_gtUEkKWVEeq2dLYfuMvqgg" target="_gtMv0KWVEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtTdk6WVEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_gtTdlKWVEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtTdlaWVEeq2dLYfuMvqgg" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gtTdlqWVEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_DYQrkKWUEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gtTdl6WVEeq2dLYfuMvqgg" points="[440, 200, -643984, -643984]$[440, 143, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtTdmKWVEeq2dLYfuMvqgg" id="(0.4,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtTdmaWVEeq2dLYfuMvqgg" id="(0.25,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_gtUrsKWVEeq2dLYfuMvqgg" type="Generalization_Edge" source="_gtRBSKWVEeq2dLYfuMvqgg" target="_gtTdgKWVEeq2dLYfuMvqgg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_gtUrsaWVEeq2dLYfuMvqgg" type="Generalization_StereotypeLabel">
+ <styles xmi:type="notation:BooleanValueStyle" xmi:id="_gtUrsqWVEeq2dLYfuMvqgg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_gtUrs6WVEeq2dLYfuMvqgg" x="1" y="59"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_gtUrtKWVEeq2dLYfuMvqgg"/>
+ <element xmi:type="uml:Generalization" href="AIML.profile.uml#_YbtssKWTEeq2dLYfuMvqgg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gtUrtaWVEeq2dLYfuMvqgg" points="[1160, 160, -643984, -643984]$[1180, 103, -643984, -643984]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtUrtqWVEeq2dLYfuMvqgg" id="(0.7453416149068323,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gtUrt6WVEeq2dLYfuMvqgg" id="(0.7453416149068323,1.0)"/>
+ </edges>
+ </notation:Diagram>
+</xmi:XMI>
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.profile.uml b/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.profile.uml
new file mode 100644
index 0000000..8562d8a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/profile/AIML.profile.uml
@@ -0,0 +1,1445 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Profile xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_IDYhIH13EeqSHNFOHg2_Jw" name="AIML" URI="http://www.eclipse.org/papyrus/AIML/1" metaclassReference="_IfyLYK8eEeqUEZ8AVVPlLA">
+ <elementImport xmi:type="uml:ElementImport" xmi:id="_IfyLYK8eEeqUEZ8AVVPlLA" alias="Class">
+ <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ </elementImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_ImVdMH13EeqSHNFOHg2_Jw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_ImfOMH13EeqSHNFOHg2_Jw">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_u1dx8JT1Eeq5BK6mmo2rWg" name="Module" URI="http://www.eclipse.org/papyrus/AIML/module/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_2E9coH2KEeqSHNFOHg2_Jw" name="Model">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_n3H-sH5rEeqSHNFOHg2_Jw" name="base_Class" association="_n3BRAH5rEeqSHNFOHg2_Jw">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_n3H-sX5rEeqSHNFOHg2_Jw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_7EMR4IhuEeqlnrZTj0aPoA" name="name" isReadOnly="true" isDerived="true">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_7vDMwIhuEeqlnrZTj0aPoA" name="data" type="_kkWnwIhuEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_9DLHEIhuEeqlnrZTj0aPoA" name="requires_grad">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1-bYgJmyEeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ivxlgIvAEeqlnrZTj0aPoA" name="subModule" type="_2E9coH2KEeqSHNFOHg2_Jw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_8M2poJmyEeq0jfmjFzaebA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_eOQdAJm0Eeq0jfmjFzaebA" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__N7qULYUEeq1Koq3J5meEA" name="optimizer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZOwH4LYVEeq1Koq3J5meEA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_AtDTsLYVEeq1Koq3J5meEA" name="loss">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YfAtALYVEeq1Koq3J5meEA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_n3BRAH5rEeqSHNFOHg2_Jw" name="E_Model_Class1" memberEnd="_n3HXoH5rEeqSHNFOHg2_Jw _n3H-sH5rEeqSHNFOHg2_Jw">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_n3HXoH5rEeqSHNFOHg2_Jw" name="extension_Model" type="_2E9coH2KEeqSHNFOHg2_Jw" aggregation="composite" association="_n3BRAH5rEeqSHNFOHg2_Jw"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_38DjAJT1Eeq5BK6mmo2rWg" name="Tensor" URI="http://www.eclipse.org/papyrus/AIML/tensor/1">
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_D6R-YIvIEeqlnrZTj0aPoA" name="EDType">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_GeF-8IvIEeqlnrZTj0aPoA" name="float32"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_VdQs8IvIEeqlnrZTj0aPoA" name="float64"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_YIbSsIvIEeqlnrZTj0aPoA" name="float16"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_bZFyMIvIEeqlnrZTj0aPoA" name="uint8"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_czCAoIvIEeqlnrZTj0aPoA" name="int8"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_dzPgcIvIEeqlnrZTj0aPoA" name="int16"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ez5sMIvIEeqlnrZTj0aPoA" name="int32"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_flb20IvIEeqlnrZTj0aPoA" name="int64"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_gV4cUIvIEeqlnrZTj0aPoA" name="bool"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Enumeration" xmi:id="_AiQ84IvMEeqlnrZTj0aPoA" name="ETensorTypes">
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_FE7PwIvMEeqlnrZTj0aPoA" name="FloatTensor"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_GM6ykIvMEeqlnrZTj0aPoA" name="DoubleTensor"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_IXWp0IvMEeqlnrZTj0aPoA" name="HalfTensor"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_KEe6AIvMEeqlnrZTj0aPoA" name="ByteTensor"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_LzG_AIvMEeqlnrZTj0aPoA" name="CharTensor"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_MmTWgIvMEeqlnrZTj0aPoA" name="ShortTensor"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Ndwi8IvMEeqlnrZTj0aPoA" name="IntTensor"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_OHKFQIvMEeqlnrZTj0aPoA" name="LongTensor"/>
+ <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_O3f9EIvMEeqlnrZTj0aPoA" name="BoolTensor"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_kkWnwIhuEeqlnrZTj0aPoA" name="Tensor">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_mlHloIhuEeqlnrZTj0aPoA" name="data">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Yr_CcJefEeq1-Ze45jZMTg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YsJagJefEeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ncDNoIhuEeqlnrZTj0aPoA" name="dtype" visibility="public" type="_D6R-YIvIEeqlnrZTj0aPoA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_k0KfwJegEeq1-Ze45jZMTg"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oUgfoIhuEeqlnrZTj0aPoA" name="device" type="_ZQQYwJbREeq1-Ze45jZMTg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HrXUUJmzEeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_o5TOwIhuEeqlnrZTj0aPoA" name="requires_grad">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JBGYMJmzEeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pnJzQIhuEeqlnrZTj0aPoA" name="pin_memory">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XzSaIJmzEeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_wocFsKWvEeq2dLYfuMvqgg" name="shape">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HJeCoKWwEeq2dLYfuMvqgg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NBT_wKWwEeq2dLYfuMvqgg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xs8PoKWvEeq2dLYfuMvqgg" name="name">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IBXT8KWwEeq2dLYfuMvqgg"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_JM8zYK8eEeqUEZ8AVVPlLA" name="base_Class" association="_JM3T0K8eEeqUEZ8AVVPlLA">
+ <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JM8zYa8eEeqUEZ8AVVPlLA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Extension" xmi:id="_JM3T0K8eEeqUEZ8AVVPlLA" name="E_Tensor_Class4" memberEnd="_JM7lQK8eEeqUEZ8AVVPlLA _JM8zYK8eEeqUEZ8AVVPlLA">
+ <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_JM7lQK8eEeqUEZ8AVVPlLA" name="extension_Tensor" type="_kkWnwIhuEeqlnrZTj0aPoA" aggregation="composite" association="_JM3T0K8eEeqUEZ8AVVPlLA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Package" xmi:id="_-8tiUJT1Eeq5BK6mmo2rWg" name="datatypes">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ZQQYwJbREeq1-Ze45jZMTg" name="Device">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_mveW8JbREeq1-Ze45jZMTg" name="type">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_Deu8AJT2Eeq5BK6mmo2rWg" name="Pooling_layers" URI="http://www.eclipse.org/papyrus/AIML/pooling/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_nMBrUIVSEeqvavUi0dxRAw" name="Pooling_layers" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_rCc7kIVYEeqlnrZTj0aPoA" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qYSzAIVSEeqvavUi0dxRAw" name="Pooling_layers_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_DTFDUIVYEeqlnrZTj0aPoA" general="_nMBrUIVSEeqvavUi0dxRAw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_CkDW8IVUEeqlnrZTj0aPoA" name="kernel_size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SeW74I82Eeq5HrfdV5ATIg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LZYuYJa3Eeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_spFw8IVSEeqvavUi0dxRAw" name="Pooling_layers_2" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_CV1X8IVYEeqlnrZTj0aPoA" general="_nMBrUIVSEeqvavUi0dxRAw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_vvW-UIVSEeqvavUi0dxRAw" name="output_size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7E6k4Ja3Eeq1-Ze45jZMTg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7DawEJa3Eeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_x9fp0IVSEeqvavUi0dxRAw" name="AdaptativeMaxPool" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_i7emsIVTEeqlnrZTj0aPoA" general="_spFw8IVSEeqvavUi0dxRAw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3JChoIVSEeqvavUi0dxRAw" name="return_indices">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Y8sCUIVTEeqlnrZTj0aPoA" name="AdaptativeMaxPool1d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_g8dVQIVTEeqlnrZTj0aPoA" general="_x9fp0IVSEeqvavUi0dxRAw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_cdWFoIVTEeqlnrZTj0aPoA" name="AdaptativeMaxPool2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_hguf8IVTEeqlnrZTj0aPoA" general="_x9fp0IVSEeqvavUi0dxRAw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_dQfZ0IVTEeqlnrZTj0aPoA" name="AdaptativeMaxPool3d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_iK5eUIVTEeqlnrZTj0aPoA" general="_x9fp0IVSEeqvavUi0dxRAw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_sAviEIVTEeqlnrZTj0aPoA" name="AdaptiveAvgPool3d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_7a4U0IVTEeqlnrZTj0aPoA" general="_spFw8IVSEeqvavUi0dxRAw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_uVbhgIVTEeqlnrZTj0aPoA" name="AdaptiveAvgPool2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_8DbikIVTEeqlnrZTj0aPoA" general="_spFw8IVSEeqvavUi0dxRAw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_vkD30IVTEeqlnrZTj0aPoA" name="AdaptiveAvgPool1d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_9Q2_AIVTEeqlnrZTj0aPoA" general="_spFw8IVSEeqvavUi0dxRAw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_H6da8IVUEeqlnrZTj0aPoA" name="Pooling_layers_1_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_2P_c8IVWEeqlnrZTj0aPoA" general="_qYSzAIVSEeqvavUi0dxRAw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_K3ga4IVUEeqlnrZTj0aPoA" name="stride">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NKGeEJa3Eeq1-Ze45jZMTg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_NIPc4Ja3Eeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_QF-D0IVUEeqlnrZTj0aPoA" name="MaxPool1d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_5a1L0IVXEeqlnrZTj0aPoA" general="_rL8rQIVXEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_SVcMEIVUEeqlnrZTj0aPoA" name="MaxUnpool1d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_3UmmgIVUEeqlnrZTj0aPoA" general="_h3EG4IVUEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_VqZVsIVUEeqlnrZTj0aPoA" name="AvgPool1d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_geEBsIVWEeqlnrZTj0aPoA" general="_6bJEMIVVEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_h3EG4IVUEeqlnrZTj0aPoA" name="Pooling_layers_1_1_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_Ud9iUIVVEeqlnrZTj0aPoA" general="_H6da8IVUEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_mqeLgIVUEeqlnrZTj0aPoA" name="padding">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_O_n1QJa3Eeq1-Ze45jZMTg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_O9_dkJa3Eeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_jxSQMKZ3EeqIr7xwFiWQGQ" name="padding_k">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lhqBoKZ3EeqIr7xwFiWQGQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_wYbekIVUEeqlnrZTj0aPoA" name="MaxUnpool2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_2i3nkIVUEeqlnrZTj0aPoA" general="_h3EG4IVUEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_y5HSoIVUEeqlnrZTj0aPoA" name="MaxUnpool3d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_2DdHsIVUEeqlnrZTj0aPoA" general="_h3EG4IVUEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_FjbcsIVVEeqlnrZTj0aPoA" name="Pooling_layers_1_1_2" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_TaQCkIVVEeqlnrZTj0aPoA" general="_H6da8IVUEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_K5-DkIVVEeqlnrZTj0aPoA" name="ceil_mode">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gpkMYJm1Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_XxquwIVVEeqlnrZTj0aPoA" name="LPPool1d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_dGXikIVVEeqlnrZTj0aPoA" general="_FjbcsIVVEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_aIzlQIVVEeqlnrZTj0aPoA" name="LPPool2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_dg9M0IVVEeqlnrZTj0aPoA" general="_FjbcsIVVEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_6bJEMIVVEeqlnrZTj0aPoA" name="Pooling_layers_1_1_2_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_eWQLMIVXEeqlnrZTj0aPoA" general="_Cfb1UIVXEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ayj5QIVWEeqlnrZTj0aPoA" name="count_include_pad">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_X90kQJm1Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_TS3LsIVWEeqlnrZTj0aPoA" name="AvgPool2d/3d" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_f8tBEIVWEeqlnrZTj0aPoA" general="_6bJEMIVVEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Y5DYIIVWEeqlnrZTj0aPoA" name="divisor_override">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_a-aAYJm1Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_b9-hsIVWEeqlnrZTj0aPoA" name="AvgPool2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_e4Tk0IVWEeqlnrZTj0aPoA" general="_TS3LsIVWEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ddho4IVWEeqlnrZTj0aPoA" name="AvgPool3d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_fQk64IVWEeqlnrZTj0aPoA" general="_TS3LsIVWEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Cfb1UIVXEeqlnrZTj0aPoA" name="Pooling_layers_1_1_1_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_V3zYMIVXEeqlnrZTj0aPoA" general="_h3EG4IVUEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_KnpSkIVXEeqlnrZTj0aPoA" name="ceil_mode">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_MPD3EJm1Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xBPDUKZ3EeqIr7xwFiWQGQ" name="pool_size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1Sv70KZ3EeqIr7xwFiWQGQ"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1S8wIKZ3EeqIr7xwFiWQGQ" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_rL8rQIVXEeqlnrZTj0aPoA" name="MaxPool" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_zKvGwIVXEeqlnrZTj0aPoA" general="_Cfb1UIVXEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_tPrdkIVXEeqlnrZTj0aPoA" name="dilation" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SBIecJa3Eeq1-Ze45jZMTg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SBRoYJa3Eeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_uGxdoIVXEeqlnrZTj0aPoA" name="return_indices">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TAuYIJm1Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_1WhB0IVXEeqlnrZTj0aPoA" name="MaxPool2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_6B2IgIVXEeqlnrZTj0aPoA" general="_rL8rQIVXEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_2J_tMIVXEeqlnrZTj0aPoA" name="MaxPool3d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_6loyEIVXEeqlnrZTj0aPoA" general="_rL8rQIVXEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Y3zwEIVYEeqlnrZTj0aPoA" name="FractionalMaxPool2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_hzfRoIVYEeqlnrZTj0aPoA" general="_qYSzAIVSEeqvavUi0dxRAw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_cdy_UIVYEeqlnrZTj0aPoA" name="output_size" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zyjKgJa3Eeq1-Ze45jZMTg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_zxKqcJa3Eeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_dhzaAIVYEeqlnrZTj0aPoA" name="output_ratio">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1TXdAJa3Eeq1-Ze45jZMTg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1MSkoJa3Eeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_fG5IgIVYEeqlnrZTj0aPoA" name="return_indices">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_thHtoJm1Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_Nr2NYJOPEeqnY_bZg2Ebjg" name="Convolution_layers" URI="http://www.eclipse.org/papyrus/AIML/convolution/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_5DtswH2KEeqSHNFOHg2_Jw" name="Convolution" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_JBpp4H5sEeqSHNFOHg2_Jw" general="_YZ54MH5qEeqSHNFOHg2_Jw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xLDlAH5nEeqSHNFOHg2_Jw" name="in_channels">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qBKXMKGzEeqsNvCDUfZJVA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_PgB_YH5oEeqSHNFOHg2_Jw" name="groups">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pV3qoJm0Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RrmfEH5oEeqSHNFOHg2_Jw" name="biais">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_q7b6QJm0Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_UPxE8H5oEeqSHNFOHg2_Jw" name="padding_mode">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nCc2gJm0Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_NJHtgKG2EeqsNvCDUfZJVA" name="data_format">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_khfcsKTYEeqmTOsCAzVBxg"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ou9p8KG2EeqsNvCDUfZJVA" name="dilation_rate">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_goNTcKTXEeqmTOsCAzVBxg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_goSL8KTXEeqmTOsCAzVBxg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_SXLt0KG2EeqsNvCDUfZJVA" name="activation">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HIOnMKTZEeqmTOsCAzVBxg"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_THvoEKG2EeqsNvCDUfZJVA" name="bias_initializer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_UiUvsKG2EeqsNvCDUfZJVA" name="activity_regularizer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_kn6TMKG2EeqsNvCDUfZJVA" name="bias_constraint">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_bGMOcKStEeqmTOsCAzVBxg" name="bias_regularizer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_anKPYH5pEeqSHNFOHg2_Jw" name="Unfold">
+ <generalization xmi:type="uml:Generalization" xmi:id="_Je4_gH5sEeqSHNFOHg2_Jw" general="_YZ54MH5qEeqSHNFOHg2_Jw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ISZCEH5qEeqSHNFOHg2_Jw" name="Fold">
+ <generalization xmi:type="uml:Generalization" xmi:id="_J9Ae4H5sEeqSHNFOHg2_Jw" general="_YZ54MH5qEeqSHNFOHg2_Jw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_MKi_YH5qEeqSHNFOHg2_Jw" name="output_size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SOf3wIL9Eeqvud4Ae2T3Lg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_jtJCoJa2Eeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_YZ54MH5qEeqSHNFOHg2_Jw" name="Convolution_layers" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_s5vukH5sEeqSHNFOHg2_Jw" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ZsHuAH5qEeqSHNFOHg2_Jw" name="kernel_size" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_okd2EIvCEeqlnrZTj0aPoA"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_LFNqoJa2Eeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_a-bqcH5qEeqSHNFOHg2_Jw" name="stride">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kN1DwI81Eeq5HrfdV5ATIg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_7V1QIJm0Eeq0jfmjFzaebA" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_bcYxwH5qEeqSHNFOHg2_Jw" name="padding">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pAoEYI81Eeq5HrfdV5ATIg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_U_9cgJa2Eeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_cR75sH5qEeqSHNFOHg2_Jw" name="dilation" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ruNsAI81Eeq5HrfdV5ATIg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XIcL8Ja2Eeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_2Ej78IVJEeqvud4Ae2T3Lg" name="Conv2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_qNQVoKG3EeqsNvCDUfZJVA" general="_5JUXMKG1EeqsNvCDUfZJVA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_6j6cIIVJEeqvud4Ae2T3Lg" name="Conv3d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_pt11wKG3EeqsNvCDUfZJVA" general="_5JUXMKG1EeqsNvCDUfZJVA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_8w4C8IVJEeqvud4Ae2T3Lg" name="ConvTranspose1d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_ROpsIKSuEeqmTOsCAzVBxg" general="_37PHIKStEeqmTOsCAzVBxg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="__Er4oIVJEeqvud4Ae2T3Lg" name="ConvTranspose2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_QScZcKG3EeqsNvCDUfZJVA" general="_RBqh0KG1EeqsNvCDUfZJVA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_AfPLEIVKEeqvud4Ae2T3Lg" name="ConvTranspose3d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_Qt4YQKG3EeqsNvCDUfZJVA" general="_RBqh0KG1EeqsNvCDUfZJVA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_RBqh0KG1EeqsNvCDUfZJVA" name="transpose" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_RL6_IKG3EeqsNvCDUfZJVA" general="_5JUXMKG1EeqsNvCDUfZJVA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_SowbcKG1EeqsNvCDUfZJVA" name="output_padding">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TFtJAKTdEeqmTOsCAzVBxg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_TFxacKTdEeqmTOsCAzVBxg" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_5JUXMKG1EeqsNvCDUfZJVA" name="basic" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_QvZkUKSuEeqmTOsCAzVBxg" general="_37PHIKStEeqmTOsCAzVBxg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_7rUZ4KG1EeqsNvCDUfZJVA" name="kernel_initializer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_21W9AKTVEeqmTOsCAzVBxg"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_85lj0KG1EeqsNvCDUfZJVA" name="kernel_constraint" type="_sQtMMKZ6EeqIr7xwFiWQGQ"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ak_cwKG2EeqsNvCDUfZJVA" name="kernel_regularizer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lYtRMKTbEeqmTOsCAzVBxg"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_g_SxQKG3EeqsNvCDUfZJVA" name="Conv1d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_q1mIAKG3EeqsNvCDUfZJVA" general="_5JUXMKG1EeqsNvCDUfZJVA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_d-jusKG4EeqsNvCDUfZJVA" name="Separable" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_Rvo5UKSuEeqmTOsCAzVBxg" general="_37PHIKStEeqmTOsCAzVBxg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_etxlIKG4EeqsNvCDUfZJVA" name="depth_multiplier">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_S7qjkKTaEeqmTOsCAzVBxg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_S7tm4KTaEeqmTOsCAzVBxg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_f_57YKG4EeqsNvCDUfZJVA" name="depthwise_initializer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_mEnKYKTaEeqmTOsCAzVBxg"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_hwRFwKG4EeqsNvCDUfZJVA" name="pointwise_initializer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kqpt0KTaEeqmTOsCAzVBxg"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_i2jYYKG4EeqsNvCDUfZJVA" name="depthwise_regularizer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_lF9PMKG4EeqsNvCDUfZJVA" name="poitnwise_regularizer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_mtJ2gKG4EeqsNvCDUfZJVA" name="depthwise_constraint">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oTAaAKG4EeqsNvCDUfZJVA" name="pointwise_constraint">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_08Tc0KG4EeqsNvCDUfZJVA" name="SeparableConv2D">
+ <generalization xmi:type="uml:Generalization" xmi:id="_KvNvgKG5EeqsNvCDUfZJVA" general="_d-jusKG4EeqsNvCDUfZJVA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_34MmMKG4EeqsNvCDUfZJVA" name="SeparableConv1D">
+ <generalization xmi:type="uml:Generalization" xmi:id="_L9aA8KG5EeqsNvCDUfZJVA" general="_d-jusKG4EeqsNvCDUfZJVA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Ip7BgKG6EeqsNvCDUfZJVA" name="DepthwiseConv2D">
+ <generalization xmi:type="uml:Generalization" xmi:id="_gvxQoKSuEeqmTOsCAzVBxg" general="_5DtswH2KEeqSHNFOHg2_Jw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_SSgFUKG6EeqsNvCDUfZJVA" name="depth_multiplier">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fDw2cKTdEeqmTOsCAzVBxg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fD1u8KTdEeqmTOsCAzVBxg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ZHdK8KG6EeqsNvCDUfZJVA" name="depthwise_initializer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_chtrUKG6EeqsNvCDUfZJVA" name="depthwise_regularizer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iro28KG6EeqsNvCDUfZJVA" name="depthwise_constraint">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_37PHIKStEeqmTOsCAzVBxg" name="LayerWithFilter" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_SbB_sKSuEeqmTOsCAzVBxg" general="_5DtswH2KEeqSHNFOHg2_Jw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_NbNPsKSuEeqmTOsCAzVBxg" name="out_channels" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_2_xEcJT2Eeq5BK6mmo2rWg" name="Padding_layers" URI="http://www.eclipse.org/papyrus/AIML/padding/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_w6iwUIVYEeqlnrZTj0aPoA" name="Padding_layers" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_zb6SIIVeEeqlnrZTj0aPoA" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_UZswkIVZEeqlnrZTj0aPoA" name="padding">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nu1jQJOREeqnY_bZg2Ebjg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nvC-oJOREeqnY_bZg2Ebjg" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_YlZU8IVZEeqlnrZTj0aPoA" name="ReflectionPad1d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_zJF2EIVZEeqlnrZTj0aPoA" general="_w6iwUIVYEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_aphv4IVZEeqlnrZTj0aPoA" name="ReflectionPad2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_0IHqIIVZEeqlnrZTj0aPoA" general="_w6iwUIVYEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_cIwG8IVZEeqlnrZTj0aPoA" name="ReplicationPad1d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_2srRkIVZEeqlnrZTj0aPoA" general="_w6iwUIVYEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_fdB7IIVZEeqlnrZTj0aPoA" name="ReplicationPad2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_3Rpm4IVZEeqlnrZTj0aPoA" general="_w6iwUIVYEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_gxtPEIVZEeqlnrZTj0aPoA" name="ReplicationPad3d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_4uA3MIVZEeqlnrZTj0aPoA" general="_w6iwUIVYEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_kjrr4IVZEeqlnrZTj0aPoA" name="ZeroPad2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_5Tm3kIVZEeqlnrZTj0aPoA" general="_w6iwUIVYEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_mNvZ8IVZEeqlnrZTj0aPoA" name="ConstantPad1d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_6g_QsIVZEeqlnrZTj0aPoA" general="_w6iwUIVYEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_okP-UIVZEeqlnrZTj0aPoA" name="ConstantPad2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_7KBmoIVZEeqlnrZTj0aPoA" general="_w6iwUIVYEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_sNFGMIVZEeqlnrZTj0aPoA" name="ConstantPad3d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_7vcA0IVZEeqlnrZTj0aPoA" general="_w6iwUIVYEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_H7fbMJT2Eeq5BK6mmo2rWg" name="NonLinearActivations" URI="http://www.eclipse.org/papyrus/AIML/nonlinear/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_AwFawIVbEeqlnrZTj0aPoA" name="Non-linear_activations_(weighted sum, nonlinearity)" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_21Ud8IVeEeqlnrZTj0aPoA" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_FFiYEIVbEeqlnrZTj0aPoA" name="ELU">
+ <generalization xmi:type="uml:Generalization" xmi:id="_ckA0sIVbEeqlnrZTj0aPoA" general="_Im3JwIVbEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_MoLDEIVbEeqlnrZTj0aPoA" name="alpha">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_98TtsJm1Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Im3JwIVbEeqlnrZTj0aPoA" name="Non-linear_activations_(weighted sum, nonlinearity)_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_dfBEYIVbEeqlnrZTj0aPoA" general="_AwFawIVbEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Ki9qEIVbEeqlnrZTj0aPoA" name="inplace">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__5jdgJm1Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_O0zSsIVbEeqlnrZTj0aPoA" name="shrink" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_Kab40IVeEeqlnrZTj0aPoA" general="_AwFawIVbEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QsGykIVbEeqlnrZTj0aPoA" name="lambd">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EmVVsJm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_T1MDYIVbEeqlnrZTj0aPoA" name="LeakyReLU">
+ <generalization xmi:type="uml:Generalization" xmi:id="_dEj9AIVbEeqlnrZTj0aPoA" general="_Im3JwIVbEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_VlPEsIVbEeqlnrZTj0aPoA" name="negative_slope">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M9Ch8Jm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_hnumMIVbEeqlnrZTj0aPoA" name="LogSigmoid">
+ <generalization xmi:type="uml:Generalization" xmi:id="_g0PMYIVeEeqlnrZTj0aPoA" general="_AwFawIVbEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_mNXUkIVbEeqlnrZTj0aPoA" name="MultiheadAttention">
+ <generalization xmi:type="uml:Generalization" xmi:id="_gMwVoIVeEeqlnrZTj0aPoA" general="_AwFawIVbEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oCRnwIVbEeqlnrZTj0aPoA" name="embed_dim">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pXDCUIVbEeqlnrZTj0aPoA" name="num_heads">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qHZhMIVbEeqlnrZTj0aPoA" name="dropout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_UfYSAJm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qxdK0IVbEeqlnrZTj0aPoA" name="bias">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_VpCBsJm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_rp_8YIVbEeqlnrZTj0aPoA" name="add_bias_kv ">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aQ0sMJm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_uscZsIVbEeqlnrZTj0aPoA" name="add_zero_attn">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_a7QwUJm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_wd6XUIVbEeqlnrZTj0aPoA" name="kdim">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_h7FCIJm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_w_bI8IVbEeqlnrZTj0aPoA" name="vdim">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_jWzZQJm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_FyhkcIVcEeqlnrZTj0aPoA" name="PReLU">
+ <generalization xmi:type="uml:Generalization" xmi:id="_fZNY0IVeEeqlnrZTj0aPoA" general="_AwFawIVbEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_H7n-8IVcEeqlnrZTj0aPoA" name="num_parameters">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_n_dmcJm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_J_NnUIVcEeqlnrZTj0aPoA" name="init">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ot4LoJm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_PQkzQIVcEeqlnrZTj0aPoA" name="ReLU">
+ <generalization xmi:type="uml:Generalization" xmi:id="_WsaSsIVcEeqlnrZTj0aPoA" general="_Im3JwIVbEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Q694gIVcEeqlnrZTj0aPoA" name="ReLU6">
+ <generalization xmi:type="uml:Generalization" xmi:id="_XLnXMIVcEeqlnrZTj0aPoA" general="_Im3JwIVbEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_T9yJQIVcEeqlnrZTj0aPoA" name="SELU">
+ <generalization xmi:type="uml:Generalization" xmi:id="_X3PuIIVcEeqlnrZTj0aPoA" general="_Im3JwIVbEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_oPGGUIVcEeqlnrZTj0aPoA" name="RReLU">
+ <generalization xmi:type="uml:Generalization" xmi:id="_yH-P8IVcEeqlnrZTj0aPoA" general="_Im3JwIVbEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_pyKbkIVcEeqlnrZTj0aPoA" name="lower">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_vYFZ0Jm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qj-TAIVcEeqlnrZTj0aPoA" name="upper">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_v48EIJm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_uYqFkIVcEeqlnrZTj0aPoA" name="CELU">
+ <generalization xmi:type="uml:Generalization" xmi:id="_ymuBcIVcEeqlnrZTj0aPoA" general="_Im3JwIVbEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_vrowYIVcEeqlnrZTj0aPoA" name="alpha">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2RN00Jm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_-FB30IVcEeqlnrZTj0aPoA" name="GELU">
+ <generalization xmi:type="uml:Generalization" xmi:id="_SfSgEIVeEeqlnrZTj0aPoA" general="_AwFawIVbEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="__HL4YIVcEeqlnrZTj0aPoA" name="Sigmoid">
+ <generalization xmi:type="uml:Generalization" xmi:id="_heXHcIVeEeqlnrZTj0aPoA" general="_AwFawIVbEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_AXPyEIVdEeqlnrZTj0aPoA" name="Softplus">
+ <generalization xmi:type="uml:Generalization" xmi:id="_LicCsIVeEeqlnrZTj0aPoA" general="_AwFawIVbEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_FZhZIIVdEeqlnrZTj0aPoA" name="beta">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6rtDIJm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_KHN3UIVdEeqlnrZTj0aPoA" name="threshold">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_7RoasJm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Q1o3IIVdEeqlnrZTj0aPoA" name="Softshrink">
+ <generalization xmi:type="uml:Generalization" xmi:id="_WoPu8IVdEeqlnrZTj0aPoA" general="_O0zSsIVbEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Tr5SkIVdEeqlnrZTj0aPoA" name="Hardshrink">
+ <generalization xmi:type="uml:Generalization" xmi:id="_WKteYIVdEeqlnrZTj0aPoA" general="_O0zSsIVbEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_dgIz0IVdEeqlnrZTj0aPoA" name="Softsign">
+ <generalization xmi:type="uml:Generalization" xmi:id="_esL6wIVeEeqlnrZTj0aPoA" general="_AwFawIVbEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ef3LcIVdEeqlnrZTj0aPoA" name="Tanhshrink">
+ <generalization xmi:type="uml:Generalization" xmi:id="_bY_rsIVeEeqlnrZTj0aPoA" general="_AwFawIVbEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_kIQXUIVdEeqlnrZTj0aPoA" name="Tanh">
+ <generalization xmi:type="uml:Generalization" xmi:id="_dbS6oIVeEeqlnrZTj0aPoA" general="_AwFawIVbEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_4wdxcIVdEeqlnrZTj0aPoA" name="Threshold">
+ <generalization xmi:type="uml:Generalization" xmi:id="_8qf-EIVdEeqlnrZTj0aPoA" general="_Im3JwIVbEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_6bNcAIVdEeqlnrZTj0aPoA" name="threshold">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_7aGGIIVdEeqlnrZTj0aPoA" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ymNBQJa5Eeq1-Ze45jZMTg" name="Hardtanh">
+ <generalization xmi:type="uml:Generalization" xmi:id="_CXDD0Ja6Eeq1-Ze45jZMTg" general="_Im3JwIVbEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3HW4QJa5Eeq1-Ze45jZMTg" name="min_val">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_JS4kYJm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_60q3gJa5Eeq1-Ze45jZMTg" name="max_val">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KluFQJm2Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_K1H6wJT2Eeq5BK6mmo2rWg" name="SoftMinMaxActivations" URI="http://www.eclipse.org/papyrus/AIML/softminmax/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_HyCdwIVfEeqlnrZTj0aPoA" name="SoftMinMax" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_LHL_MIVgEeqlnrZTj0aPoA" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_en-TsIVfEeqlnrZTj0aPoA" name="SoftMinMax_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_98A-YIVfEeqlnrZTj0aPoA" general="_HyCdwIVfEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_f3_xIIVfEeqlnrZTj0aPoA" name="dim">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZoGp4Jm3Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_lbyw4IVfEeqlnrZTj0aPoA" name="Softmin">
+ <generalization xmi:type="uml:Generalization" xmi:id="__rKAwIVfEeqlnrZTj0aPoA" general="_en-TsIVfEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_nBjNwIVfEeqlnrZTj0aPoA" name="Softmax">
+ <generalization xmi:type="uml:Generalization" xmi:id="__G9ukIVfEeqlnrZTj0aPoA" general="_en-TsIVfEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_n_v7YIVfEeqlnrZTj0aPoA" name="Softmax2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_9EA_YIVfEeqlnrZTj0aPoA" general="_HyCdwIVfEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_qeP-IIVfEeqlnrZTj0aPoA" name="LogSoftmax">
+ <generalization xmi:type="uml:Generalization" xmi:id="_-m_OAIVfEeqlnrZTj0aPoA" general="_en-TsIVfEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_vpbpkIVfEeqlnrZTj0aPoA" name="AdaptiveLogSoftmaxWithLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_8okZgIVfEeqlnrZTj0aPoA" general="_HyCdwIVfEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_zzHbwIVfEeqlnrZTj0aPoA" name="in_features">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_09lDwIVfEeqlnrZTj0aPoA" name="n_classes">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_1jP8oIVfEeqlnrZTj0aPoA" name="cutoffs">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PeizoJa8Eeq1-Ze45jZMTg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Peo6QJa8Eeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_2sVroIVfEeqlnrZTj0aPoA" name="div_value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_g9ne4Jm3Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_3ZGrAIVfEeqlnrZTj0aPoA" name="head_biais">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hkG3IJm3Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_N5zMsJT2Eeq5BK6mmo2rWg" name="Normalization_layers" URI="http://www.eclipse.org/papyrus/AIML/normalization/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ws_i4IVgEeqlnrZTj0aPoA" name="Normalization_layers" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_l2TbQIViEeqlnrZTj0aPoA" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_2ZKbgIVgEeqlnrZTj0aPoA" name="Normalization_layers_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_UxrSEIVhEeqlnrZTj0aPoA" general="_ws_i4IVgEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_4_83kIVgEeqlnrZTj0aPoA" name="eps">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_w8xDMJm3Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_GstigIVhEeqlnrZTj0aPoA" name="LayerNorm">
+ <generalization xmi:type="uml:Generalization" xmi:id="_WYnasIVhEeqlnrZTj0aPoA" general="_2ZKbgIVgEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_KI-OAIVhEeqlnrZTj0aPoA" name="normalized_shape">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EiCX4Ja-Eeq1-Ze45jZMTg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EiGpUJa-Eeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_OsXgsIVhEeqlnrZTj0aPoA" name="elementwise_affine">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_A4e5AJm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ILIBQIVhEeqlnrZTj0aPoA" name="LocalResponseNorm">
+ <generalization xmi:type="uml:Generalization" xmi:id="_UQtTAIVhEeqlnrZTj0aPoA" general="_ws_i4IVgEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Qt56oIVhEeqlnrZTj0aPoA" name="size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_RjEoEIVhEeqlnrZTj0aPoA" name="alpha">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Ja0GcJm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_SBd0QIVhEeqlnrZTj0aPoA" name="beta">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_KkqDYJm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_SVdHQIVhEeqlnrZTj0aPoA" name="k">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_NPhHIJm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_bf7SwIVhEeqlnrZTj0aPoA" name="Normalization_layers_1_1">
+ <generalization xmi:type="uml:Generalization" xmi:id="_sCPOgIVhEeqlnrZTj0aPoA" general="_2ZKbgIVgEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_gvtxYIVhEeqlnrZTj0aPoA" name="affine">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ut1GcJm3Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_fbbfAIVhEeqlnrZTj0aPoA" name="Normalization_layers_1_1_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_67JjgIVhEeqlnrZTj0aPoA" general="_bf7SwIVhEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iVdAIIVhEeqlnrZTj0aPoA" name="num_features">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ygFbsIVhEeqlnrZTj0aPoA" name="momentum">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rCxxAJm3Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_2tKgIIVhEeqlnrZTj0aPoA" name="track_running_stats ">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_sTlRkJm3Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_kVSw8IVhEeqlnrZTj0aPoA" name="GroupNorm">
+ <generalization xmi:type="uml:Generalization" xmi:id="_qWp2cIVhEeqlnrZTj0aPoA" general="_bf7SwIVhEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_mNNU0IVhEeqlnrZTj0aPoA" name="num_groups">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_njZrsIVhEeqlnrZTj0aPoA" name="num_channels">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_BDZUIIViEeqlnrZTj0aPoA" name="BatchNorm1d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_XsCU8IViEeqlnrZTj0aPoA" general="_fbbfAIVhEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ELXxsIViEeqlnrZTj0aPoA" name="BatchNorm2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_YkOhMIViEeqlnrZTj0aPoA" general="_fbbfAIVhEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_GDAowIViEeqlnrZTj0aPoA" name="BatchNorm3d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_ZlFhQIViEeqlnrZTj0aPoA" general="_fbbfAIVhEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Ikef8IViEeqlnrZTj0aPoA" name="SyncBatchNorm">
+ <generalization xmi:type="uml:Generalization" xmi:id="_aLhPIIViEeqlnrZTj0aPoA" general="_fbbfAIVhEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_K2rMEIViEeqlnrZTj0aPoA" name="process_group ">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kXoF4Ja9Eeq1-Ze45jZMTg"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_OF6vQIViEeqlnrZTj0aPoA" name="InstanceNorm1d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_alo_UIViEeqlnrZTj0aPoA" general="_fbbfAIVhEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_RKVigIViEeqlnrZTj0aPoA" name="InstanceNorm2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_a9amIIViEeqlnrZTj0aPoA" general="_fbbfAIVhEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_SiGmsIViEeqlnrZTj0aPoA" name="InstanceNorm3d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_baXn4IViEeqlnrZTj0aPoA" general="_fbbfAIVhEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_RAjiQJT2Eeq5BK6mmo2rWg" name="Recurrent_layers" URI="http://www.eclipse.org/papyrus/AIML/recurrent/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_tHLn4IViEeqlnrZTj0aPoA" name="Recurrent_layers" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_wK-eIIVkEeqlnrZTj0aPoA" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_495hwIVjEeqlnrZTj0aPoA" name="input_size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_6la5MIVjEeqlnrZTj0aPoA" name="hidden_size">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_7-lrkIVjEeqlnrZTj0aPoA" name="bias_pt">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Wl610Jm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_w_eSoIVjEeqlnrZTj0aPoA" name="Recurrent_layers_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_tTUUgIVkEeqlnrZTj0aPoA" general="_tHLn4IViEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Mgv2UIVkEeqlnrZTj0aPoA" name="num_layers">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_TrfFAJm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_NmsKsIVkEeqlnrZTj0aPoA" name="batch_first_pt">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_X3E7sJm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_bIpT0IVkEeqlnrZTj0aPoA" name="dropout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Y93koJm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_dH_VYIVkEeqlnrZTj0aPoA" name="bidirectional_pt">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aMeFwJm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_GM1kwKaAEeqIr7xwFiWQGQ" name="activation">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LrZ0UKaCEeqIr7xwFiWQGQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_M26QEKaAEeqIr7xwFiWQGQ" name="recurrent_activation">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_K3rRUKaCEeqIr7xwFiWQGQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_OalCQKaAEeqIr7xwFiWQGQ" name="use_bias">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GrLbsKaCEeqIr7xwFiWQGQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_PFb9IKaAEeqIr7xwFiWQGQ" name="kernel_initializer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HS90cKaCEeqIr7xwFiWQGQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_TQ4C0KaAEeqIr7xwFiWQGQ" name="recurrent_initializer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_H5oL0KaCEeqIr7xwFiWQGQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_uo4gUKaBEeqIr7xwFiWQGQ" name="bias_initializer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IYw-4KaCEeqIr7xwFiWQGQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_zjmG0KaBEeqIr7xwFiWQGQ" name="return_sequences">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_AcN_EKaCEeqIr7xwFiWQGQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0y_SIKaBEeqIr7xwFiWQGQ" name="return_state">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__7OK0KaBEeqIr7xwFiWQGQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_7QlAoKaBEeqIr7xwFiWQGQ" name="bidirectional_k" type="_w_eSoIVjEeqlnrZTj0aPoA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__B1EsKaBEeqIr7xwFiWQGQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ugELMOauEeq2yMJqys2DtQ" name="recurrent_dropout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_-5MbgIVjEeqlnrZTj0aPoA" name="RNNCell">
+ <generalization xmi:type="uml:Generalization" xmi:id="_rjgjwIVkEeqlnrZTj0aPoA" general="_tHLn4IViEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_AP36kIVkEeqlnrZTj0aPoA" name="nonlinearity">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eMdwcJm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_CfAEkIVkEeqlnrZTj0aPoA" name="LSTMCell">
+ <generalization xmi:type="uml:Generalization" xmi:id="_sMLGQIVkEeqlnrZTj0aPoA" general="_tHLn4IViEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_EdBQcIVkEeqlnrZTj0aPoA" name="GRUCell">
+ <generalization xmi:type="uml:Generalization" xmi:id="_svnxkIVkEeqlnrZTj0aPoA" general="_tHLn4IViEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_f3AgYIVkEeqlnrZTj0aPoA" name="RNN">
+ <generalization xmi:type="uml:Generalization" xmi:id="_pXFIcIVkEeqlnrZTj0aPoA" general="_w_eSoIVjEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_iaV_0IVkEeqlnrZTj0aPoA" name="nonlinearity">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_U0sIwJm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_kOLU8IVkEeqlnrZTj0aPoA" name="LSTM">
+ <generalization xmi:type="uml:Generalization" xmi:id="_p2PwsIVkEeqlnrZTj0aPoA" general="_w_eSoIVjEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_l8ROcIVkEeqlnrZTj0aPoA" name="GRU">
+ <generalization xmi:type="uml:Generalization" xmi:id="_qv_cIIVkEeqlnrZTj0aPoA" general="_w_eSoIVjEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_T8DDAJT2Eeq5BK6mmo2rWg" name="Transformer_layers" URI="http://www.eclipse.org/papyrus/AIML/transformer/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_zItakIVkEeqlnrZTj0aPoA" name="Transformer_layers" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_boLdkIVmEeqlnrZTj0aPoA" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_gsKxUIVlEeqlnrZTj0aPoA" name="Transformer_layers_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_SF09kIVmEeqlnrZTj0aPoA" general="_zItakIVkEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_sbCMMIVlEeqlnrZTj0aPoA" name="d_model">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ji0xIJm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_tmddgIVlEeqlnrZTj0aPoA" name="nhead">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kiISAJm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_uFbRcIVlEeqlnrZTj0aPoA" name="dim_feedforward">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l1McYJm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_v6pGoIVlEeqlnrZTj0aPoA" name="dropout">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nHZEEJm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_wuIZEIVlEeqlnrZTj0aPoA" name="activation">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oOnK0Jm4Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_kfJ6wIVlEeqlnrZTj0aPoA" name="Transformer_layers_2" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_RehtAIVmEeqlnrZTj0aPoA" general="_zItakIVkEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_mZVvgIVlEeqlnrZTj0aPoA" name="num_layers">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oByUAIVlEeqlnrZTj0aPoA" name="norm" type="_GstigIVhEeqlnrZTj0aPoA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QmjgMJkPEeqONqmgJcdSKw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_0gXUkIVlEeqlnrZTj0aPoA" name="Transformer">
+ <generalization xmi:type="uml:Generalization" xmi:id="_GMzhIIVmEeqlnrZTj0aPoA" general="_gsKxUIVlEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_2FyaQIVlEeqlnrZTj0aPoA" name="num_encoder_layers ">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_4EeUgIVlEeqlnrZTj0aPoA" name="num_decoder_layers ">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_606b0IVlEeqlnrZTj0aPoA" name="custom_encoder" type="_JjphIIVmEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_8LVcMIVlEeqlnrZTj0aPoA" name="custom_decoder" type="_Ku6aYIVmEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_-aqagIVlEeqlnrZTj0aPoA" name="TransformerDecoderLayer">
+ <generalization xmi:type="uml:Generalization" xmi:id="_GrExgIVmEeqlnrZTj0aPoA" general="_gsKxUIVlEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_AIIo8IVmEeqlnrZTj0aPoA" name="TransformerEncoderLayer">
+ <generalization xmi:type="uml:Generalization" xmi:id="_HJqyAIVmEeqlnrZTj0aPoA" general="_gsKxUIVlEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_JjphIIVmEeqlnrZTj0aPoA" name="TransformerEncoder">
+ <generalization xmi:type="uml:Generalization" xmi:id="_P0nv8IVmEeqlnrZTj0aPoA" general="_kfJ6wIVlEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Nai6MIVmEeqlnrZTj0aPoA" name="encoder_layer" type="_AIIo8IVmEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Ku6aYIVmEeqlnrZTj0aPoA" name="TransformerDecoder">
+ <generalization xmi:type="uml:Generalization" xmi:id="_QhQMcIVmEeqlnrZTj0aPoA" general="_kfJ6wIVlEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_MA0HIIVmEeqlnrZTj0aPoA" name="decoder_layer" type="_-aqagIVlEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_WwqfsJT2Eeq5BK6mmo2rWg" name="Linear_layers" URI="http://www.eclipse.org/papyrus/AIML/linear/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ThvuQIhhEeqlnrZTj0aPoA" name="Linear_layers" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_-em2MIhhEeqlnrZTj0aPoA" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_c_eM8IhhEeqlnrZTj0aPoA" name="Identity">
+ <generalization xmi:type="uml:Generalization" xmi:id="_5QYd0IhhEeqlnrZTj0aPoA" general="_ThvuQIhhEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_hGyAkIhhEeqlnrZTj0aPoA" name="Linear_layers_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_58n4wIhhEeqlnrZTj0aPoA" general="_ThvuQIhhEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_lYOnoIhhEeqlnrZTj0aPoA" name="out_features">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_m2y3YIhhEeqlnrZTj0aPoA" name="bias">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CJq-oJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ozz9sIhhEeqlnrZTj0aPoA" name="Linear">
+ <generalization xmi:type="uml:Generalization" xmi:id="_4MFvQIhhEeqlnrZTj0aPoA" general="_hGyAkIhhEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_snPzEIhhEeqlnrZTj0aPoA" name="in_features">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_p0kxsKZeEeqIr7xwFiWQGQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_1w4LoKZeEeqIr7xwFiWQGQ" name="activation">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4qNwQKZeEeqIr7xwFiWQGQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_eJ6SoKZkEeqIr7xwFiWQGQ" name="kernel_initializer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kdiM0KZkEeqIr7xwFiWQGQ"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_f9qvQKZkEeqIr7xwFiWQGQ" name="bias_initializer">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lFPGAKZkEeqIr7xwFiWQGQ"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_pJFqIIhhEeqlnrZTj0aPoA" name="Bilinear">
+ <generalization xmi:type="uml:Generalization" xmi:id="_4ugf0IhhEeqlnrZTj0aPoA" general="_hGyAkIhhEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_u5YNwIhhEeqlnrZTj0aPoA" name="in1_features">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_wboqsIhhEeqlnrZTj0aPoA" name="in2_features">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_ZUMzcJT2Eeq5BK6mmo2rWg" name="Dropout_layers" URI="http://www.eclipse.org/papyrus/AIML/dropout/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_JJr40IhiEeqlnrZTj0aPoA" name="Dropout_layers" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_yLebMIhiEeqlnrZTj0aPoA" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_L5uXgIhiEeqlnrZTj0aPoA" name="p">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HnWvUJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Mxr6QIhiEeqlnrZTj0aPoA" name="inplace">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IwBAgJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_k7wEsKcmEeqkzM30xo7jnw" name="noise_shape">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_pP1wEKcmEeqkzM30xo7jnw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tivIoKcmEeqkzM30xo7jnw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_m_lksKcmEeqkzM30xo7jnw" name="seed">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oaD-oKcmEeqkzM30xo7jnw"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_O7XjkIhiEeqlnrZTj0aPoA" name="Dropout">
+ <generalization xmi:type="uml:Generalization" xmi:id="_rp92AIhiEeqlnrZTj0aPoA" general="_JJr40IhiEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_PMP4MIhiEeqlnrZTj0aPoA" name="Dropout2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_sKSU0IhiEeqlnrZTj0aPoA" general="_JJr40IhiEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Proi4IhiEeqlnrZTj0aPoA" name="Dropout3d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_srztgIhiEeqlnrZTj0aPoA" general="_JJr40IhiEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_QF418IhiEeqlnrZTj0aPoA" name="AlphaDropout">
+ <generalization xmi:type="uml:Generalization" xmi:id="_t3zmkIhiEeqlnrZTj0aPoA" general="_JJr40IhiEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_cKwJ0JT2Eeq5BK6mmo2rWg" name="Sparse_layers" URI="http://www.eclipse.org/papyrus/AIML/sparse/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_AdGtwIhjEeqlnrZTj0aPoA" name="Sparse_layers" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_LRL6YIhuEeqlnrZTj0aPoA" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_nWwe8IhjEeqlnrZTj0aPoA" name="num_embeddings">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_p2G2QIhjEeqlnrZTj0aPoA" name="embedding_dim">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_sIOC0IhjEeqlnrZTj0aPoA" name="max_norm">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bTBBoJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_tKafoIhjEeqlnrZTj0aPoA" name="norm_type ">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Z3v9gJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_vicuAIhjEeqlnrZTj0aPoA" name="sparse">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_cMUoMJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_UjbkMJm5Eeq0jfmjFzaebA" name="scale_grad_by_freq">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Yh-dYJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_HDvqkIhjEeqlnrZTj0aPoA" name="Embedding">
+ <generalization xmi:type="uml:Generalization" xmi:id="_7zj6UIhjEeqlnrZTj0aPoA" general="_AdGtwIhjEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_w7GjAIhjEeqlnrZTj0aPoA" name="padding_idx">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_OQu3EJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_kIoWEIhjEeqlnrZTj0aPoA" name="EmbeddingBag">
+ <generalization xmi:type="uml:Generalization" xmi:id="_8S-aMIhjEeqlnrZTj0aPoA" general="_AdGtwIhjEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ytrT4IhjEeqlnrZTj0aPoA" name="mode">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fOtbIJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_z2sxcIhjEeqlnrZTj0aPoA" name="include_last_offset">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_eRKNwJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_fjUoIJT2Eeq5BK6mmo2rWg" name="Distance_functions" URI="http://www.eclipse.org/papyrus/AIML/distance/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_9-4iYIhjEeqlnrZTj0aPoA" name="Distance_functions" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_MC8HcIhuEeqlnrZTj0aPoA" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_D1Gu4IhkEeqlnrZTj0aPoA" name="eps">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ibLXIJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Ff9uMIhkEeqlnrZTj0aPoA" name="CosineSimilarity">
+ <generalization xmi:type="uml:Generalization" xmi:id="_QjaNgIhkEeqlnrZTj0aPoA" general="_9-4iYIhjEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_JmnagIhkEeqlnrZTj0aPoA" name="dim">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_j5bd0Jm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_F-SB4IhkEeqlnrZTj0aPoA" name="PairwiseDistance">
+ <generalization xmi:type="uml:Generalization" xmi:id="_RFcjkIhkEeqlnrZTj0aPoA" general="_9-4iYIhjEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Km4ksIhkEeqlnrZTj0aPoA" name="p">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lHLDUJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_LieqQIhkEeqlnrZTj0aPoA" name="keepdim">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_m257kJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_nZcP0JT2Eeq5BK6mmo2rWg" name="Loss_functions" URI="http://www.eclipse.org/papyrus/AIML/loss/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_oNze4IhnEeqlnrZTj0aPoA" name="Loss_functions" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_N1r3cIhuEeqlnrZTj0aPoA" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qCV-oIhnEeqlnrZTj0aPoA" name="reduction">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uln6wJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_F2VqAIhoEeqlnrZTj0aPoA" name="Loss_functions_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_YyIeQIhrEeqlnrZTj0aPoA" general="_oNze4IhnEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Hr6rkIhoEeqlnrZTj0aPoA" name="size_average">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_rdnoAJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_KRcjYIhoEeqlnrZTj0aPoA" name="reduce">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_5DoKsJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_UW5JYIhoEeqlnrZTj0aPoA" name="L1Loss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_PzV-UIhrEeqlnrZTj0aPoA" general="_F2VqAIhoEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_XkZnMIhoEeqlnrZTj0aPoA" name="MSELoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_PLRRsIhrEeqlnrZTj0aPoA" general="_F2VqAIhoEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_dgekEIhoEeqlnrZTj0aPoA" name="CTCLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_YDZI8IhrEeqlnrZTj0aPoA" general="_oNze4IhnEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_fsyDkIhoEeqlnrZTj0aPoA" name="blank">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9WJIwJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_g54v4IhoEeqlnrZTj0aPoA" name="zero_infinity">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_-SKFEJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_sYrucIhoEeqlnrZTj0aPoA" name="KLDivLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_Ojop8IhrEeqlnrZTj0aPoA" general="_F2VqAIhoEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_yCiS4IhoEeqlnrZTj0aPoA" name="MultiLabelMarginLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_OBMEMIhrEeqlnrZTj0aPoA" general="_F2VqAIhoEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_TXEOoIhpEeqlnrZTj0aPoA" name="Loss_functions_1_1">
+ <generalization xmi:type="uml:Generalization" xmi:id="_KmOZMIhrEeqlnrZTj0aPoA" general="_F2VqAIhoEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_dvGZcIhpEeqlnrZTj0aPoA" name="margin">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WdeZkJm6Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_cSDMoIhpEeqlnrZTj0aPoA" name="Loss_functions_1_2">
+ <generalization xmi:type="uml:Generalization" xmi:id="_L6mLIIhrEeqlnrZTj0aPoA" general="_F2VqAIhoEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_e4iGsIhpEeqlnrZTj0aPoA" name="weight" type="_kkWnwIhuEeqlnrZTj0aPoA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2lla8Jm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_o24mMIhpEeqlnrZTj0aPoA" name="CosineEmbeddingLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_sErX4IhpEeqlnrZTj0aPoA" general="_TXEOoIhpEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_uaWOwIhpEeqlnrZTj0aPoA" name="MarginRankingLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_zEGoIIhpEeqlnrZTj0aPoA" general="_TXEOoIhpEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_v673wIhpEeqlnrZTj0aPoA" name="HingeEmbeddingLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_0GpqQIhpEeqlnrZTj0aPoA" general="_TXEOoIhpEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_6OX2cIhpEeqlnrZTj0aPoA" name="BCELoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_7bTjoIhpEeqlnrZTj0aPoA" general="_cSDMoIhpEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_DrSc0IhqEeqlnrZTj0aPoA" name="Loss_functions_1_1_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_UcGuoIhqEeqlnrZTj0aPoA" general="_TXEOoIhpEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_HB3XEIhqEeqlnrZTj0aPoA" name="p">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kKr7AJm7Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_JaQx0IhqEeqlnrZTj0aPoA" name="MultiMarginLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_THXJQIhqEeqlnrZTj0aPoA" general="_DrSc0IhqEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_NFUHQIhqEeqlnrZTj0aPoA" name="weight" type="_kkWnwIhuEeqlnrZTj0aPoA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_l5gNQJm7Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_J1LMMIhqEeqlnrZTj0aPoA" name="TripletMarginLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_ToeSQIhqEeqlnrZTj0aPoA" general="_DrSc0IhqEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_LlDOYIhqEeqlnrZTj0aPoA" name="swap">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oP2ZkJm7Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_hqxIUIhqEeqlnrZTj0aPoA" name="Loss_functions_1_2_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_uCkygIhqEeqlnrZTj0aPoA" general="_cSDMoIhpEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_kXdYEIhqEeqlnrZTj0aPoA" name="ignore_index">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1CvIIJm5Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_oavnUIhqEeqlnrZTj0aPoA" name="CrossEntropyLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_rT8pEIhqEeqlnrZTj0aPoA" general="_hqxIUIhqEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_pWuucIhqEeqlnrZTj0aPoA" name="NLLLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_qQK34IhqEeqlnrZTj0aPoA" general="_hqxIUIhqEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_0iSA4IhqEeqlnrZTj0aPoA" name="PoissonNLLLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_H58ZIIhrEeqlnrZTj0aPoA" general="_cSDMoIhpEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_4J95QIhqEeqlnrZTj0aPoA" name="log_input">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_GinfYJm6Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_5TNZQIhqEeqlnrZTj0aPoA" name="full">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Hc-14Jm6Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_6KGlAIhqEeqlnrZTj0aPoA" name="eps">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_1ml9kIhqEeqlnrZTj0aPoA" name="BCEWithLogitsLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_HRZLYIhrEeqlnrZTj0aPoA" general="_cSDMoIhpEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_2xgRgIhqEeqlnrZTj0aPoA" name="pos_weight" type="_kkWnwIhuEeqlnrZTj0aPoA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ScaX4Jm6Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_q6FsEJT2Eeq5BK6mmo2rWg" name="Vision_layers" URI="http://www.eclipse.org/papyrus/AIML/vision/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_iLwgEIhrEeqlnrZTj0aPoA" name="Vision_layers" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_SZKCoIhuEeqlnrZTj0aPoA" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_t32TwIhrEeqlnrZTj0aPoA" name="Vision_layers_1" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_MhVlkIhsEeqlnrZTj0aPoA" general="_iLwgEIhrEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xJ4sQIhrEeqlnrZTj0aPoA" name="size" visibility="public">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fHduoJbPEeq1-Ze45jZMTg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_fHtmQJbPEeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_yEO0oIhrEeqlnrZTj0aPoA" name="scale_factor">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gjTagJbPEeq1-Ze45jZMTg"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_gjhc8JbPEeq1-Ze45jZMTg" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_2p5YMIhrEeqlnrZTj0aPoA" name="PixelShuffle">
+ <generalization xmi:type="uml:Generalization" xmi:id="_L7Zm8IhsEeqlnrZTj0aPoA" general="_iLwgEIhrEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_507w0IhrEeqlnrZTj0aPoA" name="upscale_factor">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_9D3yAIhrEeqlnrZTj0aPoA" name="Upsample">
+ <generalization xmi:type="uml:Generalization" xmi:id="_KFjfoIhsEeqlnrZTj0aPoA" general="_t32TwIhrEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_-r78AIhrEeqlnrZTj0aPoA" name="mode">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_yqxgUJm7Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="___G0EIhrEeqlnrZTj0aPoA" name="align_corners">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ziJNMJm7Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ExzHAIhsEeqlnrZTj0aPoA" name="UpsamplingNearest2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_KqD64IhsEeqlnrZTj0aPoA" general="_t32TwIhrEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_FiUlAIhsEeqlnrZTj0aPoA" name="UpsamplingBilinear2d">
+ <generalization xmi:type="uml:Generalization" xmi:id="_LUKn0IhsEeqlnrZTj0aPoA" general="_t32TwIhrEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_wBUroJT2Eeq5BK6mmo2rWg" name="DataParallel_layers" URI="http://www.eclipse.org/papyrus/AIML/dataparallel/1">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_jq9XEIhtEeqlnrZTj0aPoA" name="DataParallel_layers" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_VjFoAIhuEeqlnrZTj0aPoA" general="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_rBanQIhtEeqlnrZTj0aPoA" name="module" type="_2E9coH2KEeqSHNFOHg2_Jw"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_r6Q60IhtEeqlnrZTj0aPoA" name="device_ids">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PiyykJkOEeqONqmgJcdSKw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PjFGcJkOEeqONqmgJcdSKw" value="*"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_stpfkIhtEeqlnrZTj0aPoA" name="output_device">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R3Z5gJkOEeqONqmgJcdSKw"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZVyWoJkOEeqONqmgJcdSKw" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_tsGr4IhtEeqlnrZTj0aPoA" name="DistributedDataParallel">
+ <generalization xmi:type="uml:Generalization" xmi:id="_5KbJUIhtEeqlnrZTj0aPoA" general="_jq9XEIhtEeqlnrZTj0aPoA"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_vpBrkIhtEeqlnrZTj0aPoA" name="broadcast_buffers">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_c0yPAJm8Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xG4JoIhtEeqlnrZTj0aPoA" name="process_group">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_anoZAJkOEeqONqmgJcdSKw"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_yJonIIhtEeqlnrZTj0aPoA" name="bucket_cap_mb">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_fOEakJm8Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_zcpuMIhtEeqlnrZTj0aPoA" name="find_unsused_parameters">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_gQrHEJm8Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_1KdT0IhtEeqlnrZTj0aPoA" name="check_reduction">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hPrF8Jm8Eeq0jfmjFzaebA"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_2bnZsIhtEeqlnrZTj0aPoA" name="DataParallel">
+ <generalization xmi:type="uml:Generalization" xmi:id="_4pLdcIhtEeqlnrZTj0aPoA" general="_jq9XEIhtEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_hxbaEJm6Eeq0jfmjFzaebA" name="SmoothL1Loss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_mI2tUJm6Eeq0jfmjFzaebA" general="_F2VqAIhoEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_w1CjMJm6Eeq0jfmjFzaebA" name="SoftMarginLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_0seHwJm6Eeq0jfmjFzaebA" general="_F2VqAIhoEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_DSn40Jm7Eeq0jfmjFzaebA" name="MultiLabelSoftMarginLoss">
+ <generalization xmi:type="uml:Generalization" xmi:id="_HyWzgJm7Eeq0jfmjFzaebA" general="_cSDMoIhpEeqlnrZTj0aPoA"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_DtlO0KTlEeqmTOsCAzVBxg" name="Layer_weight_constraints">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_Q5gaYKThEeqmTOsCAzVBxg" name="min_max_norm">
+ <generalization xmi:type="uml:Generalization" xmi:id="_vNIpkKTkEeqmTOsCAzVBxg" general="_cxXR0KTkEeqmTOsCAzVBxg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_EO8W0KTiEeqmTOsCAzVBxg" name="min_value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_H-FiEKTiEeqmTOsCAzVBxg" name="rate">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_SFqEcKThEeqmTOsCAzVBxg" name="max_norm">
+ <generalization xmi:type="uml:Generalization" xmi:id="_vvr9AKTkEeqmTOsCAzVBxg" general="_cxXR0KTkEeqmTOsCAzVBxg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_oe1s8KThEeqmTOsCAzVBxg" name="non_neg">
+ <generalization xmi:type="uml:Generalization" xmi:id="_z11KgKZ6EeqIr7xwFiWQGQ" general="_sQtMMKZ6EeqIr7xwFiWQGQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_p5ftEKThEeqmTOsCAzVBxg" name="radial_constraint">
+ <generalization xmi:type="uml:Generalization" xmi:id="_zMJUUKZ6EeqIr7xwFiWQGQ" general="_sQtMMKZ6EeqIr7xwFiWQGQ"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_s288sKThEeqmTOsCAzVBxg" name="unit_norm">
+ <generalization xmi:type="uml:Generalization" xmi:id="_ZkPOgKTkEeqmTOsCAzVBxg" general="_T5LJIKTkEeqmTOsCAzVBxg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_T5LJIKTkEeqmTOsCAzVBxg" name="norm" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_ymebcKZ6EeqIr7xwFiWQGQ" general="_sQtMMKZ6EeqIr7xwFiWQGQ"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_YMFv0KTkEeqmTOsCAzVBxg" name="axis">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ao6-oKTkEeqmTOsCAzVBxg" value="*"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_cxXR0KTkEeqmTOsCAzVBxg" name="NormWithMaxValue" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_1Qw_8KTkEeqmTOsCAzVBxg" general="_T5LJIKTkEeqmTOsCAzVBxg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_hrd0UKTkEeqmTOsCAzVBxg" name="max_value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_sQtMMKZ6EeqIr7xwFiWQGQ" name="constraints" isAbstract="true"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_X5a5MKTpEeqmTOsCAzVBxg" name="Layer_weight_regularizers">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_0kGm4KTnEeqmTOsCAzVBxg" name="l1">
+ <generalization xmi:type="uml:Generalization" xmi:id="_8VmX0KToEeqmTOsCAzVBxg" general="_smezkKToEeqmTOsCAzVBxg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_PhQJ0KToEeqmTOsCAzVBxg" name="l2">
+ <generalization xmi:type="uml:Generalization" xmi:id="_8pjOkKToEeqmTOsCAzVBxg" general="_vbw-oKToEeqmTOsCAzVBxg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_QuKB0KToEeqmTOsCAzVBxg" name="l1_l2">
+ <generalization xmi:type="uml:Generalization" xmi:id="_98EmYKToEeqmTOsCAzVBxg" general="_smezkKToEeqmTOsCAzVBxg"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_-XpvIKToEeqmTOsCAzVBxg" general="_vbw-oKToEeqmTOsCAzVBxg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_smezkKToEeqmTOsCAzVBxg" name="ReguWithl1" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_yJ2VgKToEeqmTOsCAzVBxg" name="l1">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_C21QMKTpEeqmTOsCAzVBxg"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_vbw-oKToEeqmTOsCAzVBxg" name="ReguWithl2" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_zAXt0KToEeqmTOsCAzVBxg" name="l2">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_IgwtIKTpEeqmTOsCAzVBxg"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Profile" xmi:id="_ZgMWkKWVEeq2dLYfuMvqgg" name="Layer_weight_initializers">
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_-JzUkKWREeq2dLYfuMvqgg" name="random_normal">
+ <generalization xmi:type="uml:Generalization" xmi:id="_nuodIKWTEeq2dLYfuMvqgg" general="_iKWVMKWTEeq2dLYfuMvqgg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_GwoAcKWSEeq2dLYfuMvqgg" name="random_uniform">
+ <generalization xmi:type="uml:Generalization" xmi:id="_aApDIKWTEeq2dLYfuMvqgg" general="_OISVEKWTEeq2dLYfuMvqgg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_IiUAgKWSEeq2dLYfuMvqgg" name="minval">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_JNazAKWSEeq2dLYfuMvqgg" name="maxval">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_KermkKWSEeq2dLYfuMvqgg" name="truncated_normal">
+ <generalization xmi:type="uml:Generalization" xmi:id="_oMXiAKWTEeq2dLYfuMvqgg" general="_iKWVMKWTEeq2dLYfuMvqgg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_OfDEsKWSEeq2dLYfuMvqgg" name="zeros"/>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ZEzicKWSEeq2dLYfuMvqgg" name="ones"/>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_e6wCIKWSEeq2dLYfuMvqgg" name="glorot_normal">
+ <generalization xmi:type="uml:Generalization" xmi:id="_dM91MKWTEeq2dLYfuMvqgg" general="_OISVEKWTEeq2dLYfuMvqgg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_hxQVMKWSEeq2dLYfuMvqgg" name="glorot_uniform">
+ <generalization xmi:type="uml:Generalization" xmi:id="_YbtssKWTEeq2dLYfuMvqgg" general="_OISVEKWTEeq2dLYfuMvqgg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_lmeTQKWSEeq2dLYfuMvqgg" name="identity">
+ <generalization xmi:type="uml:Generalization" xmi:id="_DYQrkKWUEeq2dLYfuMvqgg" general="_IHtSsKWTEeq2dLYfuMvqgg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_nCPGoKWSEeq2dLYfuMvqgg" name="orthogonal">
+ <generalization xmi:type="uml:Generalization" xmi:id="_Q3KgsKWUEeq2dLYfuMvqgg" general="_IHtSsKWTEeq2dLYfuMvqgg"/>
+ <generalization xmi:type="uml:Generalization" xmi:id="_WyCjsKWUEeq2dLYfuMvqgg" general="_OISVEKWTEeq2dLYfuMvqgg"/>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_oi19wKWSEeq2dLYfuMvqgg" name="constant">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_xIu1gKWSEeq2dLYfuMvqgg" name="value">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_ytfM0KWSEeq2dLYfuMvqgg" name="variance_scaling">
+ <generalization xmi:type="uml:Generalization" xmi:id="_4dWdMKWTEeq2dLYfuMvqgg" general="_OISVEKWTEeq2dLYfuMvqgg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_z0htYKWSEeq2dLYfuMvqgg" name="scale">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0XpokKWSEeq2dLYfuMvqgg" name="mode">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_0qcowKWSEeq2dLYfuMvqgg" name="distribution">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_IHtSsKWTEeq2dLYfuMvqgg" name="initializer_with_gain" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_L46TcKWTEeq2dLYfuMvqgg" name="gain">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_OISVEKWTEeq2dLYfuMvqgg" name="initializer_with_seed" isAbstract="true">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_R4qPYKWTEeq2dLYfuMvqgg" name="seed">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Stereotype" xmi:id="_iKWVMKWTEeq2dLYfuMvqgg" name="initializer_with_mean_stddev" isAbstract="true">
+ <generalization xmi:type="uml:Generalization" xmi:id="_MGbVkKWUEeq2dLYfuMvqgg" general="_OISVEKWTEeq2dLYfuMvqgg"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_lHusUKWTEeq2dLYfuMvqgg" name="mean">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_lmazcKWTEeq2dLYfuMvqgg" name="stddev">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+ </ownedAttribute>
+ </packagedElement>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_shl-AH5QEeqSHNFOHg2_Jw">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_shqPcH5QEeqSHNFOHg2_Jw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+ </profileApplication>
+</uml:Profile>
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/AIMLFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/AIMLFactory.java
new file mode 100644
index 0000000..e4c8ea4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/AIMLFactory.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage
+ * @generated
+ */
+public interface AIMLFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ AIMLFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Smooth L1 Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Smooth L1 Loss</em>'.
+ * @generated
+ */
+ SmoothL1Loss createSmoothL1Loss();
+
+ /**
+ * Returns a new object of class '<em>Soft Margin Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Soft Margin Loss</em>'.
+ * @generated
+ */
+ SoftMarginLoss createSoftMarginLoss();
+
+ /**
+ * Returns a new object of class '<em>Multi Label Soft Margin Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multi Label Soft Margin Loss</em>'.
+ * @generated
+ */
+ MultiLabelSoftMarginLoss createMultiLabelSoftMarginLoss();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ AIMLPackage getAIMLPackage();
+
+} //AIMLFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/AIMLPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/AIMLPackage.java
new file mode 100644
index 0000000..d833263
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/AIMLPackage.java
@@ -0,0 +1,517 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.AIMLFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface AIMLPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "AIML"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ AIMLPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.impl.SmoothL1LossImpl <em>Smooth L1 Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.impl.SmoothL1LossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl#getSmoothL1Loss()
+ * @generated
+ */
+ int SMOOTH_L1_LOSS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SMOOTH_L1_LOSS__BASE_CLASS = Loss_functionsPackage.LOSS_FUNCTIONS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SMOOTH_L1_LOSS__NAME = Loss_functionsPackage.LOSS_FUNCTIONS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SMOOTH_L1_LOSS__DATA = Loss_functionsPackage.LOSS_FUNCTIONS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SMOOTH_L1_LOSS__REQUIRES_GRAD = Loss_functionsPackage.LOSS_FUNCTIONS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SMOOTH_L1_LOSS__SUB_MODULE = Loss_functionsPackage.LOSS_FUNCTIONS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SMOOTH_L1_LOSS__OPTIMIZER = Loss_functionsPackage.LOSS_FUNCTIONS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SMOOTH_L1_LOSS__LOSS = Loss_functionsPackage.LOSS_FUNCTIONS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SMOOTH_L1_LOSS__REDUCTION = Loss_functionsPackage.LOSS_FUNCTIONS_1__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SMOOTH_L1_LOSS__SIZE_AVERAGE = Loss_functionsPackage.LOSS_FUNCTIONS_1__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SMOOTH_L1_LOSS__REDUCE = Loss_functionsPackage.LOSS_FUNCTIONS_1__REDUCE;
+
+ /**
+ * The number of structural features of the '<em>Smooth L1 Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SMOOTH_L1_LOSS_FEATURE_COUNT = Loss_functionsPackage.LOSS_FUNCTIONS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Smooth L1 Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SMOOTH_L1_LOSS_OPERATION_COUNT = Loss_functionsPackage.LOSS_FUNCTIONS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.impl.SoftMarginLossImpl <em>Soft Margin Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.impl.SoftMarginLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl#getSoftMarginLoss()
+ * @generated
+ */
+ int SOFT_MARGIN_LOSS = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MARGIN_LOSS__BASE_CLASS = Loss_functionsPackage.LOSS_FUNCTIONS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MARGIN_LOSS__NAME = Loss_functionsPackage.LOSS_FUNCTIONS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MARGIN_LOSS__DATA = Loss_functionsPackage.LOSS_FUNCTIONS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MARGIN_LOSS__REQUIRES_GRAD = Loss_functionsPackage.LOSS_FUNCTIONS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MARGIN_LOSS__SUB_MODULE = Loss_functionsPackage.LOSS_FUNCTIONS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MARGIN_LOSS__OPTIMIZER = Loss_functionsPackage.LOSS_FUNCTIONS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MARGIN_LOSS__LOSS = Loss_functionsPackage.LOSS_FUNCTIONS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MARGIN_LOSS__REDUCTION = Loss_functionsPackage.LOSS_FUNCTIONS_1__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MARGIN_LOSS__SIZE_AVERAGE = Loss_functionsPackage.LOSS_FUNCTIONS_1__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MARGIN_LOSS__REDUCE = Loss_functionsPackage.LOSS_FUNCTIONS_1__REDUCE;
+
+ /**
+ * The number of structural features of the '<em>Soft Margin Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MARGIN_LOSS_FEATURE_COUNT = Loss_functionsPackage.LOSS_FUNCTIONS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Soft Margin Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MARGIN_LOSS_OPERATION_COUNT = Loss_functionsPackage.LOSS_FUNCTIONS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.impl.MultiLabelSoftMarginLossImpl <em>Multi Label Soft Margin Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.impl.MultiLabelSoftMarginLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl#getMultiLabelSoftMarginLoss()
+ * @generated
+ */
+ int MULTI_LABEL_SOFT_MARGIN_LOSS = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_SOFT_MARGIN_LOSS__BASE_CLASS = Loss_functionsPackage.LOSS_FUNCTIONS_12__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_SOFT_MARGIN_LOSS__NAME = Loss_functionsPackage.LOSS_FUNCTIONS_12__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_SOFT_MARGIN_LOSS__DATA = Loss_functionsPackage.LOSS_FUNCTIONS_12__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_SOFT_MARGIN_LOSS__REQUIRES_GRAD = Loss_functionsPackage.LOSS_FUNCTIONS_12__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_SOFT_MARGIN_LOSS__SUB_MODULE = Loss_functionsPackage.LOSS_FUNCTIONS_12__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_SOFT_MARGIN_LOSS__OPTIMIZER = Loss_functionsPackage.LOSS_FUNCTIONS_12__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_SOFT_MARGIN_LOSS__LOSS = Loss_functionsPackage.LOSS_FUNCTIONS_12__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_SOFT_MARGIN_LOSS__REDUCTION = Loss_functionsPackage.LOSS_FUNCTIONS_12__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_SOFT_MARGIN_LOSS__SIZE_AVERAGE = Loss_functionsPackage.LOSS_FUNCTIONS_12__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_SOFT_MARGIN_LOSS__REDUCE = Loss_functionsPackage.LOSS_FUNCTIONS_12__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Weight</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_SOFT_MARGIN_LOSS__WEIGHT = Loss_functionsPackage.LOSS_FUNCTIONS_12__WEIGHT;
+
+ /**
+ * The number of structural features of the '<em>Multi Label Soft Margin Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_SOFT_MARGIN_LOSS_FEATURE_COUNT = Loss_functionsPackage.LOSS_FUNCTIONS_12_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Multi Label Soft Margin Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_SOFT_MARGIN_LOSS_OPERATION_COUNT = Loss_functionsPackage.LOSS_FUNCTIONS_12_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.SmoothL1Loss <em>Smooth L1 Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Smooth L1 Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SmoothL1Loss
+ * @generated
+ */
+ EClass getSmoothL1Loss();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMarginLoss <em>Soft Margin Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Soft Margin Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMarginLoss
+ * @generated
+ */
+ EClass getSoftMarginLoss();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.MultiLabelSoftMarginLoss <em>Multi Label Soft Margin Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multi Label Soft Margin Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.MultiLabelSoftMarginLoss
+ * @generated
+ */
+ EClass getMultiLabelSoftMarginLoss();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ AIMLFactory getAIMLFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.impl.SmoothL1LossImpl <em>Smooth L1 Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.impl.SmoothL1LossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl#getSmoothL1Loss()
+ * @generated
+ */
+ EClass SMOOTH_L1_LOSS = eINSTANCE.getSmoothL1Loss();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.impl.SoftMarginLossImpl <em>Soft Margin Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.impl.SoftMarginLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl#getSoftMarginLoss()
+ * @generated
+ */
+ EClass SOFT_MARGIN_LOSS = eINSTANCE.getSoftMarginLoss();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.impl.MultiLabelSoftMarginLossImpl <em>Multi Label Soft Margin Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.impl.MultiLabelSoftMarginLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl#getMultiLabelSoftMarginLoss()
+ * @generated
+ */
+ EClass MULTI_LABEL_SOFT_MARGIN_LOSS = eINSTANCE.getMultiLabelSoftMarginLoss();
+
+ }
+
+} //AIMLPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Conv1d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Conv1d.java
new file mode 100644
index 0000000..6433c44
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Conv1d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Conv1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConv1d()
+ * @model
+ * @generated
+ */
+public interface Conv1d extends basic {
+} // Conv1d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Conv2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Conv2d.java
new file mode 100644
index 0000000..25e0c48
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Conv2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Conv2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConv2d()
+ * @model
+ * @generated
+ */
+public interface Conv2d extends basic {
+} // Conv2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Conv3d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Conv3d.java
new file mode 100644
index 0000000..7c0059d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Conv3d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Conv3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConv3d()
+ * @model
+ * @generated
+ */
+public interface Conv3d extends basic {
+} // Conv3d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/ConvTranspose1d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/ConvTranspose1d.java
new file mode 100644
index 0000000..ba82c9c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/ConvTranspose1d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Conv Transpose1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvTranspose1d()
+ * @model
+ * @generated
+ */
+public interface ConvTranspose1d extends LayerWithFilter {
+} // ConvTranspose1d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/ConvTranspose2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/ConvTranspose2d.java
new file mode 100644
index 0000000..9533a06
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/ConvTranspose2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Conv Transpose2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvTranspose2d()
+ * @model
+ * @generated
+ */
+public interface ConvTranspose2d extends transpose {
+} // ConvTranspose2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/ConvTranspose3d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/ConvTranspose3d.java
new file mode 100644
index 0000000..5e72e67
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/ConvTranspose3d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Conv Transpose3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvTranspose3d()
+ * @model
+ * @generated
+ */
+public interface ConvTranspose3d extends transpose {
+} // ConvTranspose3d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Convolution.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Convolution.java
new file mode 100644
index 0000000..40c8f10
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Convolution.java
@@ -0,0 +1,319 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Convolution</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getIn_channels <em>In channels</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getGroups <em>Groups</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#isBiais <em>Biais</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getPadding_mode <em>Padding mode</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getData_format <em>Data format</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getDilation_rate <em>Dilation rate</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getActivation <em>Activation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getBias_initializer <em>Bias initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getActivity_regularizer <em>Activity regularizer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getBias_constraint <em>Bias constraint</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getBias_regularizer <em>Bias regularizer</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Convolution extends Convolution_layers {
+ /**
+ * Returns the value of the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>In channels</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>In channels</em>' attribute.
+ * @see #setIn_channels(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_In_channels()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getIn_channels();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getIn_channels <em>In channels</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>In channels</em>' attribute.
+ * @see #getIn_channels()
+ * @generated
+ */
+ void setIn_channels(int value);
+
+ /**
+ * Returns the value of the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Groups</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Groups</em>' attribute.
+ * @see #setGroups(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_Groups()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getGroups();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getGroups <em>Groups</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Groups</em>' attribute.
+ * @see #getGroups()
+ * @generated
+ */
+ void setGroups(int value);
+
+ /**
+ * Returns the value of the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Biais</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Biais</em>' attribute.
+ * @see #setBiais(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_Biais()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isBiais();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#isBiais <em>Biais</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Biais</em>' attribute.
+ * @see #isBiais()
+ * @generated
+ */
+ void setBiais(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Padding mode</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Padding mode</em>' attribute.
+ * @see #setPadding_mode(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_Padding_mode()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getPadding_mode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getPadding_mode <em>Padding mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Padding mode</em>' attribute.
+ * @see #getPadding_mode()
+ * @generated
+ */
+ void setPadding_mode(String value);
+
+ /**
+ * Returns the value of the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data format</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data format</em>' attribute.
+ * @see #setData_format(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_Data_format()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getData_format();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getData_format <em>Data format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data format</em>' attribute.
+ * @see #getData_format()
+ * @generated
+ */
+ void setData_format(String value);
+
+ /**
+ * Returns the value of the '<em><b>Dilation rate</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dilation rate</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dilation rate</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_Dilation_rate()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getDilation_rate();
+
+ /**
+ * Returns the value of the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Activation</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Activation</em>' attribute.
+ * @see #setActivation(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_Activation()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getActivation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getActivation <em>Activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Activation</em>' attribute.
+ * @see #getActivation()
+ * @generated
+ */
+ void setActivation(String value);
+
+ /**
+ * Returns the value of the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bias initializer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bias initializer</em>' attribute.
+ * @see #setBias_initializer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_Bias_initializer()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getBias_initializer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getBias_initializer <em>Bias initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bias initializer</em>' attribute.
+ * @see #getBias_initializer()
+ * @generated
+ */
+ void setBias_initializer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Activity regularizer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Activity regularizer</em>' attribute.
+ * @see #setActivity_regularizer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_Activity_regularizer()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getActivity_regularizer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getActivity_regularizer <em>Activity regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Activity regularizer</em>' attribute.
+ * @see #getActivity_regularizer()
+ * @generated
+ */
+ void setActivity_regularizer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bias constraint</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bias constraint</em>' attribute.
+ * @see #setBias_constraint(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_Bias_constraint()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getBias_constraint();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getBias_constraint <em>Bias constraint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bias constraint</em>' attribute.
+ * @see #getBias_constraint()
+ * @generated
+ */
+ void setBias_constraint(String value);
+
+ /**
+ * Returns the value of the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bias regularizer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bias regularizer</em>' attribute.
+ * @see #setBias_regularizer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_Bias_regularizer()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getBias_regularizer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getBias_regularizer <em>Bias regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bias regularizer</em>' attribute.
+ * @see #getBias_regularizer()
+ * @generated
+ */
+ void setBias_regularizer(String value);
+
+} // Convolution
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Convolution_layers.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Convolution_layers.java
new file mode 100644
index 0000000..e94b5b9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Convolution_layers.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Convolution layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers#getKernel_size <em>Kernel size</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers#getStride <em>Stride</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers#getPadding <em>Padding</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers#getDilation <em>Dilation</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_layers()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Convolution_layers extends Model {
+ /**
+ * Returns the value of the '<em><b>Kernel size</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kernel size</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kernel size</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_layers_Kernel_size()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getKernel_size();
+
+ /**
+ * Returns the value of the '<em><b>Stride</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stride</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stride</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_layers_Stride()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getStride();
+
+ /**
+ * Returns the value of the '<em><b>Padding</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Padding</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Padding</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_layers_Padding()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getPadding();
+
+ /**
+ * Returns the value of the '<em><b>Dilation</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dilation</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dilation</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getConvolution_layers_Dilation()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getDilation();
+
+} // Convolution_layers
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Convolution_layersFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Convolution_layersFactory.java
new file mode 100644
index 0000000..2376154
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Convolution_layersFactory.java
@@ -0,0 +1,141 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage
+ * @generated
+ */
+public interface Convolution_layersFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Convolution_layersFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Unfold</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Unfold</em>'.
+ * @generated
+ */
+ Unfold createUnfold();
+
+ /**
+ * Returns a new object of class '<em>Fold</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Fold</em>'.
+ * @generated
+ */
+ Fold createFold();
+
+ /**
+ * Returns a new object of class '<em>Conv2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Conv2d</em>'.
+ * @generated
+ */
+ Conv2d createConv2d();
+
+ /**
+ * Returns a new object of class '<em>Conv3d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Conv3d</em>'.
+ * @generated
+ */
+ Conv3d createConv3d();
+
+ /**
+ * Returns a new object of class '<em>Conv Transpose1d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Conv Transpose1d</em>'.
+ * @generated
+ */
+ ConvTranspose1d createConvTranspose1d();
+
+ /**
+ * Returns a new object of class '<em>Conv Transpose2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Conv Transpose2d</em>'.
+ * @generated
+ */
+ ConvTranspose2d createConvTranspose2d();
+
+ /**
+ * Returns a new object of class '<em>Conv Transpose3d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Conv Transpose3d</em>'.
+ * @generated
+ */
+ ConvTranspose3d createConvTranspose3d();
+
+ /**
+ * Returns a new object of class '<em>Conv1d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Conv1d</em>'.
+ * @generated
+ */
+ Conv1d createConv1d();
+
+ /**
+ * Returns a new object of class '<em>Separable Conv2 D</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Separable Conv2 D</em>'.
+ * @generated
+ */
+ SeparableConv2D createSeparableConv2D();
+
+ /**
+ * Returns a new object of class '<em>Separable Conv1 D</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Separable Conv1 D</em>'.
+ * @generated
+ */
+ SeparableConv1D createSeparableConv1D();
+
+ /**
+ * Returns a new object of class '<em>Depthwise Conv2 D</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Depthwise Conv2 D</em>'.
+ * @generated
+ */
+ DepthwiseConv2D createDepthwiseConv2D();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Convolution_layersPackage getConvolution_layersPackage();
+
+} //Convolution_layersFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Convolution_layersPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Convolution_layersPackage.java
new file mode 100644
index 0000000..d6a1aaf
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Convolution_layersPackage.java
@@ -0,0 +1,5147 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Convolution_layersPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Convolution_layers"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/convolution/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Convolution_layers"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Convolution_layersPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersImpl <em>Convolution layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConvolution_layers()
+ * @generated
+ */
+ int CONVOLUTION_LAYERS = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_LAYERS__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_LAYERS__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_LAYERS__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_LAYERS__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_LAYERS__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_LAYERS__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_LAYERS__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_LAYERS__KERNEL_SIZE = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_LAYERS__STRIDE = ModulePackage.MODEL_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_LAYERS__PADDING = ModulePackage.MODEL_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_LAYERS__DILATION = ModulePackage.MODEL_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Convolution layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_LAYERS_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 4;
+
+ /**
+ * The number of operations of the '<em>Convolution layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_LAYERS_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl <em>Convolution</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConvolution()
+ * @generated
+ */
+ int CONVOLUTION = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__BASE_CLASS = CONVOLUTION_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__NAME = CONVOLUTION_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__DATA = CONVOLUTION_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__REQUIRES_GRAD = CONVOLUTION_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__SUB_MODULE = CONVOLUTION_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__OPTIMIZER = CONVOLUTION_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__LOSS = CONVOLUTION_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__KERNEL_SIZE = CONVOLUTION_LAYERS__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__STRIDE = CONVOLUTION_LAYERS__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__PADDING = CONVOLUTION_LAYERS__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__DILATION = CONVOLUTION_LAYERS__DILATION;
+
+ /**
+ * The feature id for the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__IN_CHANNELS = CONVOLUTION_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__GROUPS = CONVOLUTION_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__BIAIS = CONVOLUTION_LAYERS_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__PADDING_MODE = CONVOLUTION_LAYERS_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__DATA_FORMAT = CONVOLUTION_LAYERS_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Dilation rate</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__DILATION_RATE = CONVOLUTION_LAYERS_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__ACTIVATION = CONVOLUTION_LAYERS_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__BIAS_INITIALIZER = CONVOLUTION_LAYERS_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__ACTIVITY_REGULARIZER = CONVOLUTION_LAYERS_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__BIAS_CONSTRAINT = CONVOLUTION_LAYERS_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION__BIAS_REGULARIZER = CONVOLUTION_LAYERS_FEATURE_COUNT + 10;
+
+ /**
+ * The number of structural features of the '<em>Convolution</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_FEATURE_COUNT = CONVOLUTION_LAYERS_FEATURE_COUNT + 11;
+
+ /**
+ * The number of operations of the '<em>Convolution</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONVOLUTION_OPERATION_COUNT = CONVOLUTION_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.UnfoldImpl <em>Unfold</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.UnfoldImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getUnfold()
+ * @generated
+ */
+ int UNFOLD = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNFOLD__BASE_CLASS = CONVOLUTION_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNFOLD__NAME = CONVOLUTION_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNFOLD__DATA = CONVOLUTION_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNFOLD__REQUIRES_GRAD = CONVOLUTION_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNFOLD__SUB_MODULE = CONVOLUTION_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNFOLD__OPTIMIZER = CONVOLUTION_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNFOLD__LOSS = CONVOLUTION_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNFOLD__KERNEL_SIZE = CONVOLUTION_LAYERS__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNFOLD__STRIDE = CONVOLUTION_LAYERS__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNFOLD__PADDING = CONVOLUTION_LAYERS__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNFOLD__DILATION = CONVOLUTION_LAYERS__DILATION;
+
+ /**
+ * The number of structural features of the '<em>Unfold</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNFOLD_FEATURE_COUNT = CONVOLUTION_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Unfold</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNFOLD_OPERATION_COUNT = CONVOLUTION_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.FoldImpl <em>Fold</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.FoldImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getFold()
+ * @generated
+ */
+ int FOLD = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLD__BASE_CLASS = CONVOLUTION_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLD__NAME = CONVOLUTION_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLD__DATA = CONVOLUTION_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLD__REQUIRES_GRAD = CONVOLUTION_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLD__SUB_MODULE = CONVOLUTION_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLD__OPTIMIZER = CONVOLUTION_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLD__LOSS = CONVOLUTION_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLD__KERNEL_SIZE = CONVOLUTION_LAYERS__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLD__STRIDE = CONVOLUTION_LAYERS__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLD__PADDING = CONVOLUTION_LAYERS__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLD__DILATION = CONVOLUTION_LAYERS__DILATION;
+
+ /**
+ * The feature id for the '<em><b>Output size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLD__OUTPUT_SIZE = CONVOLUTION_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Fold</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLD_FEATURE_COUNT = CONVOLUTION_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Fold</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FOLD_OPERATION_COUNT = CONVOLUTION_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.LayerWithFilterImpl <em>Layer With Filter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.LayerWithFilterImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getLayerWithFilter()
+ * @generated
+ */
+ int LAYER_WITH_FILTER = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__BASE_CLASS = CONVOLUTION__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__NAME = CONVOLUTION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__DATA = CONVOLUTION__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__REQUIRES_GRAD = CONVOLUTION__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__SUB_MODULE = CONVOLUTION__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__OPTIMIZER = CONVOLUTION__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__LOSS = CONVOLUTION__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__KERNEL_SIZE = CONVOLUTION__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__STRIDE = CONVOLUTION__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__PADDING = CONVOLUTION__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__DILATION = CONVOLUTION__DILATION;
+
+ /**
+ * The feature id for the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__IN_CHANNELS = CONVOLUTION__IN_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__GROUPS = CONVOLUTION__GROUPS;
+
+ /**
+ * The feature id for the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__BIAIS = CONVOLUTION__BIAIS;
+
+ /**
+ * The feature id for the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__PADDING_MODE = CONVOLUTION__PADDING_MODE;
+
+ /**
+ * The feature id for the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__DATA_FORMAT = CONVOLUTION__DATA_FORMAT;
+
+ /**
+ * The feature id for the '<em><b>Dilation rate</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__DILATION_RATE = CONVOLUTION__DILATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__ACTIVATION = CONVOLUTION__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__BIAS_INITIALIZER = CONVOLUTION__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__ACTIVITY_REGULARIZER = CONVOLUTION__ACTIVITY_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__BIAS_CONSTRAINT = CONVOLUTION__BIAS_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__BIAS_REGULARIZER = CONVOLUTION__BIAS_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Out channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER__OUT_CHANNELS = CONVOLUTION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Layer With Filter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER_FEATURE_COUNT = CONVOLUTION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Layer With Filter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_WITH_FILTER_OPERATION_COUNT = CONVOLUTION_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.basicImpl <em>basic</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.basicImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getbasic()
+ * @generated
+ */
+ int BASIC = 5;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__BASE_CLASS = LAYER_WITH_FILTER__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__NAME = LAYER_WITH_FILTER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__DATA = LAYER_WITH_FILTER__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__REQUIRES_GRAD = LAYER_WITH_FILTER__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__SUB_MODULE = LAYER_WITH_FILTER__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__OPTIMIZER = LAYER_WITH_FILTER__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__LOSS = LAYER_WITH_FILTER__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__KERNEL_SIZE = LAYER_WITH_FILTER__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__STRIDE = LAYER_WITH_FILTER__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__PADDING = LAYER_WITH_FILTER__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__DILATION = LAYER_WITH_FILTER__DILATION;
+
+ /**
+ * The feature id for the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__IN_CHANNELS = LAYER_WITH_FILTER__IN_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__GROUPS = LAYER_WITH_FILTER__GROUPS;
+
+ /**
+ * The feature id for the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__BIAIS = LAYER_WITH_FILTER__BIAIS;
+
+ /**
+ * The feature id for the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__PADDING_MODE = LAYER_WITH_FILTER__PADDING_MODE;
+
+ /**
+ * The feature id for the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__DATA_FORMAT = LAYER_WITH_FILTER__DATA_FORMAT;
+
+ /**
+ * The feature id for the '<em><b>Dilation rate</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__DILATION_RATE = LAYER_WITH_FILTER__DILATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__ACTIVATION = LAYER_WITH_FILTER__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__BIAS_INITIALIZER = LAYER_WITH_FILTER__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__ACTIVITY_REGULARIZER = LAYER_WITH_FILTER__ACTIVITY_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__BIAS_CONSTRAINT = LAYER_WITH_FILTER__BIAS_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__BIAS_REGULARIZER = LAYER_WITH_FILTER__BIAS_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Out channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__OUT_CHANNELS = LAYER_WITH_FILTER__OUT_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__KERNEL_INITIALIZER = LAYER_WITH_FILTER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Kernel constraint</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__KERNEL_CONSTRAINT = LAYER_WITH_FILTER_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Kernel regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC__KERNEL_REGULARIZER = LAYER_WITH_FILTER_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>basic</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC_FEATURE_COUNT = LAYER_WITH_FILTER_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the '<em>basic</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BASIC_OPERATION_COUNT = LAYER_WITH_FILTER_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Conv2dImpl <em>Conv2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Conv2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConv2d()
+ * @generated
+ */
+ int CONV2D = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__BASE_CLASS = BASIC__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__NAME = BASIC__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__DATA = BASIC__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__REQUIRES_GRAD = BASIC__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__SUB_MODULE = BASIC__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__OPTIMIZER = BASIC__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__LOSS = BASIC__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__KERNEL_SIZE = BASIC__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__STRIDE = BASIC__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__PADDING = BASIC__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__DILATION = BASIC__DILATION;
+
+ /**
+ * The feature id for the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__IN_CHANNELS = BASIC__IN_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__GROUPS = BASIC__GROUPS;
+
+ /**
+ * The feature id for the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__BIAIS = BASIC__BIAIS;
+
+ /**
+ * The feature id for the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__PADDING_MODE = BASIC__PADDING_MODE;
+
+ /**
+ * The feature id for the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__DATA_FORMAT = BASIC__DATA_FORMAT;
+
+ /**
+ * The feature id for the '<em><b>Dilation rate</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__DILATION_RATE = BASIC__DILATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__ACTIVATION = BASIC__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__BIAS_INITIALIZER = BASIC__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__ACTIVITY_REGULARIZER = BASIC__ACTIVITY_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__BIAS_CONSTRAINT = BASIC__BIAS_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__BIAS_REGULARIZER = BASIC__BIAS_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Out channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__OUT_CHANNELS = BASIC__OUT_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__KERNEL_INITIALIZER = BASIC__KERNEL_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Kernel constraint</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__KERNEL_CONSTRAINT = BASIC__KERNEL_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Kernel regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D__KERNEL_REGULARIZER = BASIC__KERNEL_REGULARIZER;
+
+ /**
+ * The number of structural features of the '<em>Conv2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D_FEATURE_COUNT = BASIC_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Conv2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV2D_OPERATION_COUNT = BASIC_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Conv3dImpl <em>Conv3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Conv3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConv3d()
+ * @generated
+ */
+ int CONV3D = 7;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__BASE_CLASS = BASIC__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__NAME = BASIC__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__DATA = BASIC__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__REQUIRES_GRAD = BASIC__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__SUB_MODULE = BASIC__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__OPTIMIZER = BASIC__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__LOSS = BASIC__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__KERNEL_SIZE = BASIC__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__STRIDE = BASIC__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__PADDING = BASIC__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__DILATION = BASIC__DILATION;
+
+ /**
+ * The feature id for the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__IN_CHANNELS = BASIC__IN_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__GROUPS = BASIC__GROUPS;
+
+ /**
+ * The feature id for the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__BIAIS = BASIC__BIAIS;
+
+ /**
+ * The feature id for the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__PADDING_MODE = BASIC__PADDING_MODE;
+
+ /**
+ * The feature id for the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__DATA_FORMAT = BASIC__DATA_FORMAT;
+
+ /**
+ * The feature id for the '<em><b>Dilation rate</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__DILATION_RATE = BASIC__DILATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__ACTIVATION = BASIC__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__BIAS_INITIALIZER = BASIC__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__ACTIVITY_REGULARIZER = BASIC__ACTIVITY_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__BIAS_CONSTRAINT = BASIC__BIAS_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__BIAS_REGULARIZER = BASIC__BIAS_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Out channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__OUT_CHANNELS = BASIC__OUT_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__KERNEL_INITIALIZER = BASIC__KERNEL_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Kernel constraint</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__KERNEL_CONSTRAINT = BASIC__KERNEL_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Kernel regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D__KERNEL_REGULARIZER = BASIC__KERNEL_REGULARIZER;
+
+ /**
+ * The number of structural features of the '<em>Conv3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D_FEATURE_COUNT = BASIC_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Conv3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV3D_OPERATION_COUNT = BASIC_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvTranspose1dImpl <em>Conv Transpose1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvTranspose1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConvTranspose1d()
+ * @generated
+ */
+ int CONV_TRANSPOSE1D = 8;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__BASE_CLASS = LAYER_WITH_FILTER__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__NAME = LAYER_WITH_FILTER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__DATA = LAYER_WITH_FILTER__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__REQUIRES_GRAD = LAYER_WITH_FILTER__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__SUB_MODULE = LAYER_WITH_FILTER__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__OPTIMIZER = LAYER_WITH_FILTER__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__LOSS = LAYER_WITH_FILTER__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__KERNEL_SIZE = LAYER_WITH_FILTER__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__STRIDE = LAYER_WITH_FILTER__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__PADDING = LAYER_WITH_FILTER__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__DILATION = LAYER_WITH_FILTER__DILATION;
+
+ /**
+ * The feature id for the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__IN_CHANNELS = LAYER_WITH_FILTER__IN_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__GROUPS = LAYER_WITH_FILTER__GROUPS;
+
+ /**
+ * The feature id for the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__BIAIS = LAYER_WITH_FILTER__BIAIS;
+
+ /**
+ * The feature id for the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__PADDING_MODE = LAYER_WITH_FILTER__PADDING_MODE;
+
+ /**
+ * The feature id for the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__DATA_FORMAT = LAYER_WITH_FILTER__DATA_FORMAT;
+
+ /**
+ * The feature id for the '<em><b>Dilation rate</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__DILATION_RATE = LAYER_WITH_FILTER__DILATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__ACTIVATION = LAYER_WITH_FILTER__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__BIAS_INITIALIZER = LAYER_WITH_FILTER__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__ACTIVITY_REGULARIZER = LAYER_WITH_FILTER__ACTIVITY_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__BIAS_CONSTRAINT = LAYER_WITH_FILTER__BIAS_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__BIAS_REGULARIZER = LAYER_WITH_FILTER__BIAS_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Out channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D__OUT_CHANNELS = LAYER_WITH_FILTER__OUT_CHANNELS;
+
+ /**
+ * The number of structural features of the '<em>Conv Transpose1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D_FEATURE_COUNT = LAYER_WITH_FILTER_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Conv Transpose1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE1D_OPERATION_COUNT = LAYER_WITH_FILTER_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.transposeImpl <em>transpose</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.transposeImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#gettranspose()
+ * @generated
+ */
+ int TRANSPOSE = 10;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__BASE_CLASS = BASIC__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__NAME = BASIC__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__DATA = BASIC__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__REQUIRES_GRAD = BASIC__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__SUB_MODULE = BASIC__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__OPTIMIZER = BASIC__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__LOSS = BASIC__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__KERNEL_SIZE = BASIC__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__STRIDE = BASIC__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__PADDING = BASIC__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__DILATION = BASIC__DILATION;
+
+ /**
+ * The feature id for the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__IN_CHANNELS = BASIC__IN_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__GROUPS = BASIC__GROUPS;
+
+ /**
+ * The feature id for the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__BIAIS = BASIC__BIAIS;
+
+ /**
+ * The feature id for the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__PADDING_MODE = BASIC__PADDING_MODE;
+
+ /**
+ * The feature id for the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__DATA_FORMAT = BASIC__DATA_FORMAT;
+
+ /**
+ * The feature id for the '<em><b>Dilation rate</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__DILATION_RATE = BASIC__DILATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__ACTIVATION = BASIC__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__BIAS_INITIALIZER = BASIC__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__ACTIVITY_REGULARIZER = BASIC__ACTIVITY_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__BIAS_CONSTRAINT = BASIC__BIAS_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__BIAS_REGULARIZER = BASIC__BIAS_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Out channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__OUT_CHANNELS = BASIC__OUT_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__KERNEL_INITIALIZER = BASIC__KERNEL_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Kernel constraint</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__KERNEL_CONSTRAINT = BASIC__KERNEL_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Kernel regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__KERNEL_REGULARIZER = BASIC__KERNEL_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Output padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE__OUTPUT_PADDING = BASIC_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>transpose</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE_FEATURE_COUNT = BASIC_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>transpose</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSPOSE_OPERATION_COUNT = BASIC_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvTranspose2dImpl <em>Conv Transpose2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvTranspose2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConvTranspose2d()
+ * @generated
+ */
+ int CONV_TRANSPOSE2D = 9;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__BASE_CLASS = TRANSPOSE__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__NAME = TRANSPOSE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__DATA = TRANSPOSE__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__REQUIRES_GRAD = TRANSPOSE__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__SUB_MODULE = TRANSPOSE__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__OPTIMIZER = TRANSPOSE__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__LOSS = TRANSPOSE__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__KERNEL_SIZE = TRANSPOSE__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__STRIDE = TRANSPOSE__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__PADDING = TRANSPOSE__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__DILATION = TRANSPOSE__DILATION;
+
+ /**
+ * The feature id for the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__IN_CHANNELS = TRANSPOSE__IN_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__GROUPS = TRANSPOSE__GROUPS;
+
+ /**
+ * The feature id for the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__BIAIS = TRANSPOSE__BIAIS;
+
+ /**
+ * The feature id for the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__PADDING_MODE = TRANSPOSE__PADDING_MODE;
+
+ /**
+ * The feature id for the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__DATA_FORMAT = TRANSPOSE__DATA_FORMAT;
+
+ /**
+ * The feature id for the '<em><b>Dilation rate</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__DILATION_RATE = TRANSPOSE__DILATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__ACTIVATION = TRANSPOSE__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__BIAS_INITIALIZER = TRANSPOSE__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__ACTIVITY_REGULARIZER = TRANSPOSE__ACTIVITY_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__BIAS_CONSTRAINT = TRANSPOSE__BIAS_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__BIAS_REGULARIZER = TRANSPOSE__BIAS_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Out channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__OUT_CHANNELS = TRANSPOSE__OUT_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__KERNEL_INITIALIZER = TRANSPOSE__KERNEL_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Kernel constraint</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__KERNEL_CONSTRAINT = TRANSPOSE__KERNEL_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Kernel regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__KERNEL_REGULARIZER = TRANSPOSE__KERNEL_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Output padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D__OUTPUT_PADDING = TRANSPOSE__OUTPUT_PADDING;
+
+ /**
+ * The number of structural features of the '<em>Conv Transpose2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D_FEATURE_COUNT = TRANSPOSE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Conv Transpose2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE2D_OPERATION_COUNT = TRANSPOSE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvTranspose3dImpl <em>Conv Transpose3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvTranspose3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConvTranspose3d()
+ * @generated
+ */
+ int CONV_TRANSPOSE3D = 11;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__BASE_CLASS = TRANSPOSE__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__NAME = TRANSPOSE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__DATA = TRANSPOSE__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__REQUIRES_GRAD = TRANSPOSE__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__SUB_MODULE = TRANSPOSE__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__OPTIMIZER = TRANSPOSE__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__LOSS = TRANSPOSE__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__KERNEL_SIZE = TRANSPOSE__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__STRIDE = TRANSPOSE__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__PADDING = TRANSPOSE__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__DILATION = TRANSPOSE__DILATION;
+
+ /**
+ * The feature id for the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__IN_CHANNELS = TRANSPOSE__IN_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__GROUPS = TRANSPOSE__GROUPS;
+
+ /**
+ * The feature id for the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__BIAIS = TRANSPOSE__BIAIS;
+
+ /**
+ * The feature id for the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__PADDING_MODE = TRANSPOSE__PADDING_MODE;
+
+ /**
+ * The feature id for the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__DATA_FORMAT = TRANSPOSE__DATA_FORMAT;
+
+ /**
+ * The feature id for the '<em><b>Dilation rate</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__DILATION_RATE = TRANSPOSE__DILATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__ACTIVATION = TRANSPOSE__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__BIAS_INITIALIZER = TRANSPOSE__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__ACTIVITY_REGULARIZER = TRANSPOSE__ACTIVITY_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__BIAS_CONSTRAINT = TRANSPOSE__BIAS_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__BIAS_REGULARIZER = TRANSPOSE__BIAS_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Out channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__OUT_CHANNELS = TRANSPOSE__OUT_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__KERNEL_INITIALIZER = TRANSPOSE__KERNEL_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Kernel constraint</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__KERNEL_CONSTRAINT = TRANSPOSE__KERNEL_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Kernel regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__KERNEL_REGULARIZER = TRANSPOSE__KERNEL_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Output padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D__OUTPUT_PADDING = TRANSPOSE__OUTPUT_PADDING;
+
+ /**
+ * The number of structural features of the '<em>Conv Transpose3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D_FEATURE_COUNT = TRANSPOSE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Conv Transpose3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV_TRANSPOSE3D_OPERATION_COUNT = TRANSPOSE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Conv1dImpl <em>Conv1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Conv1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConv1d()
+ * @generated
+ */
+ int CONV1D = 12;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__BASE_CLASS = BASIC__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__NAME = BASIC__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__DATA = BASIC__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__REQUIRES_GRAD = BASIC__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__SUB_MODULE = BASIC__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__OPTIMIZER = BASIC__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__LOSS = BASIC__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__KERNEL_SIZE = BASIC__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__STRIDE = BASIC__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__PADDING = BASIC__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__DILATION = BASIC__DILATION;
+
+ /**
+ * The feature id for the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__IN_CHANNELS = BASIC__IN_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__GROUPS = BASIC__GROUPS;
+
+ /**
+ * The feature id for the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__BIAIS = BASIC__BIAIS;
+
+ /**
+ * The feature id for the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__PADDING_MODE = BASIC__PADDING_MODE;
+
+ /**
+ * The feature id for the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__DATA_FORMAT = BASIC__DATA_FORMAT;
+
+ /**
+ * The feature id for the '<em><b>Dilation rate</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__DILATION_RATE = BASIC__DILATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__ACTIVATION = BASIC__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__BIAS_INITIALIZER = BASIC__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__ACTIVITY_REGULARIZER = BASIC__ACTIVITY_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__BIAS_CONSTRAINT = BASIC__BIAS_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__BIAS_REGULARIZER = BASIC__BIAS_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Out channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__OUT_CHANNELS = BASIC__OUT_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__KERNEL_INITIALIZER = BASIC__KERNEL_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Kernel constraint</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__KERNEL_CONSTRAINT = BASIC__KERNEL_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Kernel regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D__KERNEL_REGULARIZER = BASIC__KERNEL_REGULARIZER;
+
+ /**
+ * The number of structural features of the '<em>Conv1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D_FEATURE_COUNT = BASIC_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Conv1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONV1D_OPERATION_COUNT = BASIC_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableImpl <em>Separable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getSeparable()
+ * @generated
+ */
+ int SEPARABLE = 13;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__BASE_CLASS = LAYER_WITH_FILTER__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__NAME = LAYER_WITH_FILTER__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__DATA = LAYER_WITH_FILTER__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__REQUIRES_GRAD = LAYER_WITH_FILTER__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__SUB_MODULE = LAYER_WITH_FILTER__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__OPTIMIZER = LAYER_WITH_FILTER__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__LOSS = LAYER_WITH_FILTER__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__KERNEL_SIZE = LAYER_WITH_FILTER__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__STRIDE = LAYER_WITH_FILTER__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__PADDING = LAYER_WITH_FILTER__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__DILATION = LAYER_WITH_FILTER__DILATION;
+
+ /**
+ * The feature id for the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__IN_CHANNELS = LAYER_WITH_FILTER__IN_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__GROUPS = LAYER_WITH_FILTER__GROUPS;
+
+ /**
+ * The feature id for the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__BIAIS = LAYER_WITH_FILTER__BIAIS;
+
+ /**
+ * The feature id for the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__PADDING_MODE = LAYER_WITH_FILTER__PADDING_MODE;
+
+ /**
+ * The feature id for the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__DATA_FORMAT = LAYER_WITH_FILTER__DATA_FORMAT;
+
+ /**
+ * The feature id for the '<em><b>Dilation rate</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__DILATION_RATE = LAYER_WITH_FILTER__DILATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__ACTIVATION = LAYER_WITH_FILTER__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__BIAS_INITIALIZER = LAYER_WITH_FILTER__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__ACTIVITY_REGULARIZER = LAYER_WITH_FILTER__ACTIVITY_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__BIAS_CONSTRAINT = LAYER_WITH_FILTER__BIAS_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__BIAS_REGULARIZER = LAYER_WITH_FILTER__BIAS_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Out channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__OUT_CHANNELS = LAYER_WITH_FILTER__OUT_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Depth multiplier</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__DEPTH_MULTIPLIER = LAYER_WITH_FILTER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Depthwise initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__DEPTHWISE_INITIALIZER = LAYER_WITH_FILTER_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Pointwise initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__POINTWISE_INITIALIZER = LAYER_WITH_FILTER_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Depthwise regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__DEPTHWISE_REGULARIZER = LAYER_WITH_FILTER_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Poitnwise regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__POITNWISE_REGULARIZER = LAYER_WITH_FILTER_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Depthwise constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__DEPTHWISE_CONSTRAINT = LAYER_WITH_FILTER_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Pointwise constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE__POINTWISE_CONSTRAINT = LAYER_WITH_FILTER_FEATURE_COUNT + 6;
+
+ /**
+ * The number of structural features of the '<em>Separable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_FEATURE_COUNT = LAYER_WITH_FILTER_FEATURE_COUNT + 7;
+
+ /**
+ * The number of operations of the '<em>Separable</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_OPERATION_COUNT = LAYER_WITH_FILTER_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableConv2DImpl <em>Separable Conv2 D</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableConv2DImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getSeparableConv2D()
+ * @generated
+ */
+ int SEPARABLE_CONV2_D = 14;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__BASE_CLASS = SEPARABLE__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__NAME = SEPARABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__DATA = SEPARABLE__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__REQUIRES_GRAD = SEPARABLE__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__SUB_MODULE = SEPARABLE__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__OPTIMIZER = SEPARABLE__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__LOSS = SEPARABLE__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__KERNEL_SIZE = SEPARABLE__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__STRIDE = SEPARABLE__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__PADDING = SEPARABLE__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__DILATION = SEPARABLE__DILATION;
+
+ /**
+ * The feature id for the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__IN_CHANNELS = SEPARABLE__IN_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__GROUPS = SEPARABLE__GROUPS;
+
+ /**
+ * The feature id for the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__BIAIS = SEPARABLE__BIAIS;
+
+ /**
+ * The feature id for the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__PADDING_MODE = SEPARABLE__PADDING_MODE;
+
+ /**
+ * The feature id for the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__DATA_FORMAT = SEPARABLE__DATA_FORMAT;
+
+ /**
+ * The feature id for the '<em><b>Dilation rate</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__DILATION_RATE = SEPARABLE__DILATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__ACTIVATION = SEPARABLE__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__BIAS_INITIALIZER = SEPARABLE__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__ACTIVITY_REGULARIZER = SEPARABLE__ACTIVITY_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__BIAS_CONSTRAINT = SEPARABLE__BIAS_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__BIAS_REGULARIZER = SEPARABLE__BIAS_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Out channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__OUT_CHANNELS = SEPARABLE__OUT_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Depth multiplier</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__DEPTH_MULTIPLIER = SEPARABLE__DEPTH_MULTIPLIER;
+
+ /**
+ * The feature id for the '<em><b>Depthwise initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__DEPTHWISE_INITIALIZER = SEPARABLE__DEPTHWISE_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Pointwise initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__POINTWISE_INITIALIZER = SEPARABLE__POINTWISE_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Depthwise regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__DEPTHWISE_REGULARIZER = SEPARABLE__DEPTHWISE_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Poitnwise regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__POITNWISE_REGULARIZER = SEPARABLE__POITNWISE_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Depthwise constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__DEPTHWISE_CONSTRAINT = SEPARABLE__DEPTHWISE_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Pointwise constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D__POINTWISE_CONSTRAINT = SEPARABLE__POINTWISE_CONSTRAINT;
+
+ /**
+ * The number of structural features of the '<em>Separable Conv2 D</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D_FEATURE_COUNT = SEPARABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Separable Conv2 D</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV2_D_OPERATION_COUNT = SEPARABLE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableConv1DImpl <em>Separable Conv1 D</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableConv1DImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getSeparableConv1D()
+ * @generated
+ */
+ int SEPARABLE_CONV1_D = 15;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__BASE_CLASS = SEPARABLE__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__NAME = SEPARABLE__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__DATA = SEPARABLE__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__REQUIRES_GRAD = SEPARABLE__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__SUB_MODULE = SEPARABLE__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__OPTIMIZER = SEPARABLE__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__LOSS = SEPARABLE__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__KERNEL_SIZE = SEPARABLE__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__STRIDE = SEPARABLE__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__PADDING = SEPARABLE__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__DILATION = SEPARABLE__DILATION;
+
+ /**
+ * The feature id for the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__IN_CHANNELS = SEPARABLE__IN_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__GROUPS = SEPARABLE__GROUPS;
+
+ /**
+ * The feature id for the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__BIAIS = SEPARABLE__BIAIS;
+
+ /**
+ * The feature id for the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__PADDING_MODE = SEPARABLE__PADDING_MODE;
+
+ /**
+ * The feature id for the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__DATA_FORMAT = SEPARABLE__DATA_FORMAT;
+
+ /**
+ * The feature id for the '<em><b>Dilation rate</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__DILATION_RATE = SEPARABLE__DILATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__ACTIVATION = SEPARABLE__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__BIAS_INITIALIZER = SEPARABLE__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__ACTIVITY_REGULARIZER = SEPARABLE__ACTIVITY_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__BIAS_CONSTRAINT = SEPARABLE__BIAS_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__BIAS_REGULARIZER = SEPARABLE__BIAS_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Out channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__OUT_CHANNELS = SEPARABLE__OUT_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Depth multiplier</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__DEPTH_MULTIPLIER = SEPARABLE__DEPTH_MULTIPLIER;
+
+ /**
+ * The feature id for the '<em><b>Depthwise initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__DEPTHWISE_INITIALIZER = SEPARABLE__DEPTHWISE_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Pointwise initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__POINTWISE_INITIALIZER = SEPARABLE__POINTWISE_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Depthwise regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__DEPTHWISE_REGULARIZER = SEPARABLE__DEPTHWISE_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Poitnwise regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__POITNWISE_REGULARIZER = SEPARABLE__POITNWISE_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Depthwise constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__DEPTHWISE_CONSTRAINT = SEPARABLE__DEPTHWISE_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Pointwise constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D__POINTWISE_CONSTRAINT = SEPARABLE__POINTWISE_CONSTRAINT;
+
+ /**
+ * The number of structural features of the '<em>Separable Conv1 D</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D_FEATURE_COUNT = SEPARABLE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Separable Conv1 D</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SEPARABLE_CONV1_D_OPERATION_COUNT = SEPARABLE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.DepthwiseConv2DImpl <em>Depthwise Conv2 D</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.DepthwiseConv2DImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getDepthwiseConv2D()
+ * @generated
+ */
+ int DEPTHWISE_CONV2_D = 16;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__BASE_CLASS = CONVOLUTION__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__NAME = CONVOLUTION__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__DATA = CONVOLUTION__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__REQUIRES_GRAD = CONVOLUTION__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__SUB_MODULE = CONVOLUTION__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__OPTIMIZER = CONVOLUTION__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__LOSS = CONVOLUTION__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__KERNEL_SIZE = CONVOLUTION__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__STRIDE = CONVOLUTION__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__PADDING = CONVOLUTION__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__DILATION = CONVOLUTION__DILATION;
+
+ /**
+ * The feature id for the '<em><b>In channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__IN_CHANNELS = CONVOLUTION__IN_CHANNELS;
+
+ /**
+ * The feature id for the '<em><b>Groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__GROUPS = CONVOLUTION__GROUPS;
+
+ /**
+ * The feature id for the '<em><b>Biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__BIAIS = CONVOLUTION__BIAIS;
+
+ /**
+ * The feature id for the '<em><b>Padding mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__PADDING_MODE = CONVOLUTION__PADDING_MODE;
+
+ /**
+ * The feature id for the '<em><b>Data format</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__DATA_FORMAT = CONVOLUTION__DATA_FORMAT;
+
+ /**
+ * The feature id for the '<em><b>Dilation rate</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__DILATION_RATE = CONVOLUTION__DILATION_RATE;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__ACTIVATION = CONVOLUTION__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__BIAS_INITIALIZER = CONVOLUTION__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Activity regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__ACTIVITY_REGULARIZER = CONVOLUTION__ACTIVITY_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__BIAS_CONSTRAINT = CONVOLUTION__BIAS_CONSTRAINT;
+
+ /**
+ * The feature id for the '<em><b>Bias regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__BIAS_REGULARIZER = CONVOLUTION__BIAS_REGULARIZER;
+
+ /**
+ * The feature id for the '<em><b>Depth multiplier</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__DEPTH_MULTIPLIER = CONVOLUTION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Depthwise initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__DEPTHWISE_INITIALIZER = CONVOLUTION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Depthwise regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__DEPTHWISE_REGULARIZER = CONVOLUTION_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Depthwise constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D__DEPTHWISE_CONSTRAINT = CONVOLUTION_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Depthwise Conv2 D</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D_FEATURE_COUNT = CONVOLUTION_FEATURE_COUNT + 4;
+
+ /**
+ * The number of operations of the '<em>Depthwise Conv2 D</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEPTHWISE_CONV2_D_OPERATION_COUNT = CONVOLUTION_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution <em>Convolution</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Convolution</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution
+ * @generated
+ */
+ EClass getConvolution();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getIn_channels <em>In channels</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>In channels</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getIn_channels()
+ * @see #getConvolution()
+ * @generated
+ */
+ EAttribute getConvolution_In_channels();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getGroups <em>Groups</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Groups</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getGroups()
+ * @see #getConvolution()
+ * @generated
+ */
+ EAttribute getConvolution_Groups();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#isBiais <em>Biais</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Biais</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#isBiais()
+ * @see #getConvolution()
+ * @generated
+ */
+ EAttribute getConvolution_Biais();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getPadding_mode <em>Padding mode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Padding mode</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getPadding_mode()
+ * @see #getConvolution()
+ * @generated
+ */
+ EAttribute getConvolution_Padding_mode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getData_format <em>Data format</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Data format</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getData_format()
+ * @see #getConvolution()
+ * @generated
+ */
+ EAttribute getConvolution_Data_format();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getDilation_rate <em>Dilation rate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Dilation rate</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getDilation_rate()
+ * @see #getConvolution()
+ * @generated
+ */
+ EAttribute getConvolution_Dilation_rate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getActivation <em>Activation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Activation</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getActivation()
+ * @see #getConvolution()
+ * @generated
+ */
+ EAttribute getConvolution_Activation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getBias_initializer <em>Bias initializer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bias initializer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getBias_initializer()
+ * @see #getConvolution()
+ * @generated
+ */
+ EAttribute getConvolution_Bias_initializer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getActivity_regularizer <em>Activity regularizer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Activity regularizer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getActivity_regularizer()
+ * @see #getConvolution()
+ * @generated
+ */
+ EAttribute getConvolution_Activity_regularizer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getBias_constraint <em>Bias constraint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bias constraint</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getBias_constraint()
+ * @see #getConvolution()
+ * @generated
+ */
+ EAttribute getConvolution_Bias_constraint();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getBias_regularizer <em>Bias regularizer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bias regularizer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution#getBias_regularizer()
+ * @see #getConvolution()
+ * @generated
+ */
+ EAttribute getConvolution_Bias_regularizer();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers <em>Convolution layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Convolution layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers
+ * @generated
+ */
+ EClass getConvolution_layers();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers#getKernel_size <em>Kernel size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Kernel size</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers#getKernel_size()
+ * @see #getConvolution_layers()
+ * @generated
+ */
+ EAttribute getConvolution_layers_Kernel_size();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers#getStride <em>Stride</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Stride</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers#getStride()
+ * @see #getConvolution_layers()
+ * @generated
+ */
+ EAttribute getConvolution_layers_Stride();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers#getPadding <em>Padding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Padding</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers#getPadding()
+ * @see #getConvolution_layers()
+ * @generated
+ */
+ EAttribute getConvolution_layers_Padding();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers#getDilation <em>Dilation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Dilation</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers#getDilation()
+ * @see #getConvolution_layers()
+ * @generated
+ */
+ EAttribute getConvolution_layers_Dilation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Unfold <em>Unfold</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Unfold</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Unfold
+ * @generated
+ */
+ EClass getUnfold();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Fold <em>Fold</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Fold</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Fold
+ * @generated
+ */
+ EClass getFold();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Fold#getOutput_size <em>Output size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Output size</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Fold#getOutput_size()
+ * @see #getFold()
+ * @generated
+ */
+ EAttribute getFold_Output_size();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv2d <em>Conv2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Conv2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv2d
+ * @generated
+ */
+ EClass getConv2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic <em>basic</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>basic</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic
+ * @generated
+ */
+ EClass getbasic();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic#getKernel_initializer <em>Kernel initializer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Kernel initializer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic#getKernel_initializer()
+ * @see #getbasic()
+ * @generated
+ */
+ EAttribute getbasic_Kernel_initializer();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic#getKernel_constraint <em>Kernel constraint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Kernel constraint</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic#getKernel_constraint()
+ * @see #getbasic()
+ * @generated
+ */
+ EReference getbasic_Kernel_constraint();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic#getKernel_regularizer <em>Kernel regularizer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Kernel regularizer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic#getKernel_regularizer()
+ * @see #getbasic()
+ * @generated
+ */
+ EAttribute getbasic_Kernel_regularizer();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.LayerWithFilter <em>Layer With Filter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Layer With Filter</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.LayerWithFilter
+ * @generated
+ */
+ EClass getLayerWithFilter();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.LayerWithFilter#getOut_channels <em>Out channels</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Out channels</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.LayerWithFilter#getOut_channels()
+ * @see #getLayerWithFilter()
+ * @generated
+ */
+ EAttribute getLayerWithFilter_Out_channels();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv3d <em>Conv3d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Conv3d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv3d
+ * @generated
+ */
+ EClass getConv3d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose1d <em>Conv Transpose1d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Conv Transpose1d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose1d
+ * @generated
+ */
+ EClass getConvTranspose1d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose2d <em>Conv Transpose2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Conv Transpose2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose2d
+ * @generated
+ */
+ EClass getConvTranspose2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.transpose <em>transpose</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>transpose</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.transpose
+ * @generated
+ */
+ EClass gettranspose();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.transpose#getOutput_padding <em>Output padding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Output padding</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.transpose#getOutput_padding()
+ * @see #gettranspose()
+ * @generated
+ */
+ EAttribute gettranspose_Output_padding();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose3d <em>Conv Transpose3d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Conv Transpose3d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose3d
+ * @generated
+ */
+ EClass getConvTranspose3d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv1d <em>Conv1d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Conv1d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv1d
+ * @generated
+ */
+ EClass getConv1d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable <em>Separable</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Separable</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable
+ * @generated
+ */
+ EClass getSeparable();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepth_multiplier <em>Depth multiplier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Depth multiplier</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepth_multiplier()
+ * @see #getSeparable()
+ * @generated
+ */
+ EAttribute getSeparable_Depth_multiplier();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepthwise_initializer <em>Depthwise initializer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Depthwise initializer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepthwise_initializer()
+ * @see #getSeparable()
+ * @generated
+ */
+ EAttribute getSeparable_Depthwise_initializer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getPointwise_initializer <em>Pointwise initializer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Pointwise initializer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getPointwise_initializer()
+ * @see #getSeparable()
+ * @generated
+ */
+ EAttribute getSeparable_Pointwise_initializer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepthwise_regularizer <em>Depthwise regularizer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Depthwise regularizer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepthwise_regularizer()
+ * @see #getSeparable()
+ * @generated
+ */
+ EAttribute getSeparable_Depthwise_regularizer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getPoitnwise_regularizer <em>Poitnwise regularizer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Poitnwise regularizer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getPoitnwise_regularizer()
+ * @see #getSeparable()
+ * @generated
+ */
+ EAttribute getSeparable_Poitnwise_regularizer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepthwise_constraint <em>Depthwise constraint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Depthwise constraint</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepthwise_constraint()
+ * @see #getSeparable()
+ * @generated
+ */
+ EAttribute getSeparable_Depthwise_constraint();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getPointwise_constraint <em>Pointwise constraint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Pointwise constraint</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getPointwise_constraint()
+ * @see #getSeparable()
+ * @generated
+ */
+ EAttribute getSeparable_Pointwise_constraint();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.SeparableConv2D <em>Separable Conv2 D</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Separable Conv2 D</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.SeparableConv2D
+ * @generated
+ */
+ EClass getSeparableConv2D();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.SeparableConv1D <em>Separable Conv1 D</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Separable Conv1 D</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.SeparableConv1D
+ * @generated
+ */
+ EClass getSeparableConv1D();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D <em>Depthwise Conv2 D</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Depthwise Conv2 D</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D
+ * @generated
+ */
+ EClass getDepthwiseConv2D();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepth_multiplier <em>Depth multiplier</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Depth multiplier</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepth_multiplier()
+ * @see #getDepthwiseConv2D()
+ * @generated
+ */
+ EAttribute getDepthwiseConv2D_Depth_multiplier();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepthwise_initializer <em>Depthwise initializer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Depthwise initializer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepthwise_initializer()
+ * @see #getDepthwiseConv2D()
+ * @generated
+ */
+ EAttribute getDepthwiseConv2D_Depthwise_initializer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepthwise_regularizer <em>Depthwise regularizer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Depthwise regularizer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepthwise_regularizer()
+ * @see #getDepthwiseConv2D()
+ * @generated
+ */
+ EAttribute getDepthwiseConv2D_Depthwise_regularizer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepthwise_constraint <em>Depthwise constraint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Depthwise constraint</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepthwise_constraint()
+ * @see #getDepthwiseConv2D()
+ * @generated
+ */
+ EAttribute getDepthwiseConv2D_Depthwise_constraint();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Convolution_layersFactory getConvolution_layersFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl <em>Convolution</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConvolution()
+ * @generated
+ */
+ EClass CONVOLUTION = eINSTANCE.getConvolution();
+
+ /**
+ * The meta object literal for the '<em><b>In channels</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION__IN_CHANNELS = eINSTANCE.getConvolution_In_channels();
+
+ /**
+ * The meta object literal for the '<em><b>Groups</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION__GROUPS = eINSTANCE.getConvolution_Groups();
+
+ /**
+ * The meta object literal for the '<em><b>Biais</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION__BIAIS = eINSTANCE.getConvolution_Biais();
+
+ /**
+ * The meta object literal for the '<em><b>Padding mode</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION__PADDING_MODE = eINSTANCE.getConvolution_Padding_mode();
+
+ /**
+ * The meta object literal for the '<em><b>Data format</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION__DATA_FORMAT = eINSTANCE.getConvolution_Data_format();
+
+ /**
+ * The meta object literal for the '<em><b>Dilation rate</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION__DILATION_RATE = eINSTANCE.getConvolution_Dilation_rate();
+
+ /**
+ * The meta object literal for the '<em><b>Activation</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION__ACTIVATION = eINSTANCE.getConvolution_Activation();
+
+ /**
+ * The meta object literal for the '<em><b>Bias initializer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION__BIAS_INITIALIZER = eINSTANCE.getConvolution_Bias_initializer();
+
+ /**
+ * The meta object literal for the '<em><b>Activity regularizer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION__ACTIVITY_REGULARIZER = eINSTANCE.getConvolution_Activity_regularizer();
+
+ /**
+ * The meta object literal for the '<em><b>Bias constraint</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION__BIAS_CONSTRAINT = eINSTANCE.getConvolution_Bias_constraint();
+
+ /**
+ * The meta object literal for the '<em><b>Bias regularizer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION__BIAS_REGULARIZER = eINSTANCE.getConvolution_Bias_regularizer();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersImpl <em>Convolution layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConvolution_layers()
+ * @generated
+ */
+ EClass CONVOLUTION_LAYERS = eINSTANCE.getConvolution_layers();
+
+ /**
+ * The meta object literal for the '<em><b>Kernel size</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION_LAYERS__KERNEL_SIZE = eINSTANCE.getConvolution_layers_Kernel_size();
+
+ /**
+ * The meta object literal for the '<em><b>Stride</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION_LAYERS__STRIDE = eINSTANCE.getConvolution_layers_Stride();
+
+ /**
+ * The meta object literal for the '<em><b>Padding</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION_LAYERS__PADDING = eINSTANCE.getConvolution_layers_Padding();
+
+ /**
+ * The meta object literal for the '<em><b>Dilation</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONVOLUTION_LAYERS__DILATION = eINSTANCE.getConvolution_layers_Dilation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.UnfoldImpl <em>Unfold</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.UnfoldImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getUnfold()
+ * @generated
+ */
+ EClass UNFOLD = eINSTANCE.getUnfold();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.FoldImpl <em>Fold</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.FoldImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getFold()
+ * @generated
+ */
+ EClass FOLD = eINSTANCE.getFold();
+
+ /**
+ * The meta object literal for the '<em><b>Output size</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FOLD__OUTPUT_SIZE = eINSTANCE.getFold_Output_size();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Conv2dImpl <em>Conv2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Conv2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConv2d()
+ * @generated
+ */
+ EClass CONV2D = eINSTANCE.getConv2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.basicImpl <em>basic</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.basicImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getbasic()
+ * @generated
+ */
+ EClass BASIC = eINSTANCE.getbasic();
+
+ /**
+ * The meta object literal for the '<em><b>Kernel initializer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BASIC__KERNEL_INITIALIZER = eINSTANCE.getbasic_Kernel_initializer();
+
+ /**
+ * The meta object literal for the '<em><b>Kernel constraint</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BASIC__KERNEL_CONSTRAINT = eINSTANCE.getbasic_Kernel_constraint();
+
+ /**
+ * The meta object literal for the '<em><b>Kernel regularizer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BASIC__KERNEL_REGULARIZER = eINSTANCE.getbasic_Kernel_regularizer();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.LayerWithFilterImpl <em>Layer With Filter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.LayerWithFilterImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getLayerWithFilter()
+ * @generated
+ */
+ EClass LAYER_WITH_FILTER = eINSTANCE.getLayerWithFilter();
+
+ /**
+ * The meta object literal for the '<em><b>Out channels</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LAYER_WITH_FILTER__OUT_CHANNELS = eINSTANCE.getLayerWithFilter_Out_channels();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Conv3dImpl <em>Conv3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Conv3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConv3d()
+ * @generated
+ */
+ EClass CONV3D = eINSTANCE.getConv3d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvTranspose1dImpl <em>Conv Transpose1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvTranspose1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConvTranspose1d()
+ * @generated
+ */
+ EClass CONV_TRANSPOSE1D = eINSTANCE.getConvTranspose1d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvTranspose2dImpl <em>Conv Transpose2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvTranspose2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConvTranspose2d()
+ * @generated
+ */
+ EClass CONV_TRANSPOSE2D = eINSTANCE.getConvTranspose2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.transposeImpl <em>transpose</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.transposeImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#gettranspose()
+ * @generated
+ */
+ EClass TRANSPOSE = eINSTANCE.gettranspose();
+
+ /**
+ * The meta object literal for the '<em><b>Output padding</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSPOSE__OUTPUT_PADDING = eINSTANCE.gettranspose_Output_padding();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvTranspose3dImpl <em>Conv Transpose3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvTranspose3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConvTranspose3d()
+ * @generated
+ */
+ EClass CONV_TRANSPOSE3D = eINSTANCE.getConvTranspose3d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Conv1dImpl <em>Conv1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Conv1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getConv1d()
+ * @generated
+ */
+ EClass CONV1D = eINSTANCE.getConv1d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableImpl <em>Separable</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getSeparable()
+ * @generated
+ */
+ EClass SEPARABLE = eINSTANCE.getSeparable();
+
+ /**
+ * The meta object literal for the '<em><b>Depth multiplier</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SEPARABLE__DEPTH_MULTIPLIER = eINSTANCE.getSeparable_Depth_multiplier();
+
+ /**
+ * The meta object literal for the '<em><b>Depthwise initializer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SEPARABLE__DEPTHWISE_INITIALIZER = eINSTANCE.getSeparable_Depthwise_initializer();
+
+ /**
+ * The meta object literal for the '<em><b>Pointwise initializer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SEPARABLE__POINTWISE_INITIALIZER = eINSTANCE.getSeparable_Pointwise_initializer();
+
+ /**
+ * The meta object literal for the '<em><b>Depthwise regularizer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SEPARABLE__DEPTHWISE_REGULARIZER = eINSTANCE.getSeparable_Depthwise_regularizer();
+
+ /**
+ * The meta object literal for the '<em><b>Poitnwise regularizer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SEPARABLE__POITNWISE_REGULARIZER = eINSTANCE.getSeparable_Poitnwise_regularizer();
+
+ /**
+ * The meta object literal for the '<em><b>Depthwise constraint</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SEPARABLE__DEPTHWISE_CONSTRAINT = eINSTANCE.getSeparable_Depthwise_constraint();
+
+ /**
+ * The meta object literal for the '<em><b>Pointwise constraint</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SEPARABLE__POINTWISE_CONSTRAINT = eINSTANCE.getSeparable_Pointwise_constraint();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableConv2DImpl <em>Separable Conv2 D</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableConv2DImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getSeparableConv2D()
+ * @generated
+ */
+ EClass SEPARABLE_CONV2_D = eINSTANCE.getSeparableConv2D();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableConv1DImpl <em>Separable Conv1 D</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableConv1DImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getSeparableConv1D()
+ * @generated
+ */
+ EClass SEPARABLE_CONV1_D = eINSTANCE.getSeparableConv1D();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.DepthwiseConv2DImpl <em>Depthwise Conv2 D</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.DepthwiseConv2DImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl#getDepthwiseConv2D()
+ * @generated
+ */
+ EClass DEPTHWISE_CONV2_D = eINSTANCE.getDepthwiseConv2D();
+
+ /**
+ * The meta object literal for the '<em><b>Depth multiplier</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DEPTHWISE_CONV2_D__DEPTH_MULTIPLIER = eINSTANCE.getDepthwiseConv2D_Depth_multiplier();
+
+ /**
+ * The meta object literal for the '<em><b>Depthwise initializer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DEPTHWISE_CONV2_D__DEPTHWISE_INITIALIZER = eINSTANCE.getDepthwiseConv2D_Depthwise_initializer();
+
+ /**
+ * The meta object literal for the '<em><b>Depthwise regularizer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DEPTHWISE_CONV2_D__DEPTHWISE_REGULARIZER = eINSTANCE.getDepthwiseConv2D_Depthwise_regularizer();
+
+ /**
+ * The meta object literal for the '<em><b>Depthwise constraint</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DEPTHWISE_CONV2_D__DEPTHWISE_CONSTRAINT = eINSTANCE.getDepthwiseConv2D_Depthwise_constraint();
+
+ }
+
+} //Convolution_layersPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/DepthwiseConv2D.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/DepthwiseConv2D.java
new file mode 100644
index 0000000..40f9dc4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/DepthwiseConv2D.java
@@ -0,0 +1,130 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Depthwise Conv2 D</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepth_multiplier <em>Depth multiplier</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepthwise_initializer <em>Depthwise initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepthwise_regularizer <em>Depthwise regularizer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepthwise_constraint <em>Depthwise constraint</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getDepthwiseConv2D()
+ * @model
+ * @generated
+ */
+public interface DepthwiseConv2D extends Convolution {
+ /**
+ * Returns the value of the '<em><b>Depth multiplier</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Depth multiplier</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Depth multiplier</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getDepthwiseConv2D_Depth_multiplier()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getDepth_multiplier();
+
+ /**
+ * Returns the value of the '<em><b>Depthwise initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Depthwise initializer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Depthwise initializer</em>' attribute.
+ * @see #setDepthwise_initializer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getDepthwiseConv2D_Depthwise_initializer()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getDepthwise_initializer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepthwise_initializer <em>Depthwise initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Depthwise initializer</em>' attribute.
+ * @see #getDepthwise_initializer()
+ * @generated
+ */
+ void setDepthwise_initializer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Depthwise regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Depthwise regularizer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Depthwise regularizer</em>' attribute.
+ * @see #setDepthwise_regularizer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getDepthwiseConv2D_Depthwise_regularizer()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getDepthwise_regularizer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepthwise_regularizer <em>Depthwise regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Depthwise regularizer</em>' attribute.
+ * @see #getDepthwise_regularizer()
+ * @generated
+ */
+ void setDepthwise_regularizer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Depthwise constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Depthwise constraint</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Depthwise constraint</em>' attribute.
+ * @see #setDepthwise_constraint(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getDepthwiseConv2D_Depthwise_constraint()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getDepthwise_constraint();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D#getDepthwise_constraint <em>Depthwise constraint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Depthwise constraint</em>' attribute.
+ * @see #getDepthwise_constraint()
+ * @generated
+ */
+ void setDepthwise_constraint(String value);
+
+} // DepthwiseConv2D
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Fold.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Fold.java
new file mode 100644
index 0000000..3347752
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Fold.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Fold</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Fold#getOutput_size <em>Output size</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getFold()
+ * @model
+ * @generated
+ */
+public interface Fold extends Convolution_layers {
+ /**
+ * Returns the value of the '<em><b>Output size</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output size</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output size</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getFold_Output_size()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getOutput_size();
+
+} // Fold
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/LayerWithFilter.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/LayerWithFilter.java
new file mode 100644
index 0000000..0816f57
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/LayerWithFilter.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Layer With Filter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.LayerWithFilter#getOut_channels <em>Out channels</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getLayerWithFilter()
+ * @model abstract="true"
+ * @generated
+ */
+public interface LayerWithFilter extends Convolution {
+ /**
+ * Returns the value of the '<em><b>Out channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Out channels</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Out channels</em>' attribute.
+ * @see #setOut_channels(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getLayerWithFilter_Out_channels()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getOut_channels();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.LayerWithFilter#getOut_channels <em>Out channels</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Out channels</em>' attribute.
+ * @see #getOut_channels()
+ * @generated
+ */
+ void setOut_channels(int value);
+
+} // LayerWithFilter
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Separable.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Separable.java
new file mode 100644
index 0000000..352c464
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Separable.java
@@ -0,0 +1,211 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Separable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepth_multiplier <em>Depth multiplier</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepthwise_initializer <em>Depthwise initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getPointwise_initializer <em>Pointwise initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepthwise_regularizer <em>Depthwise regularizer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getPoitnwise_regularizer <em>Poitnwise regularizer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepthwise_constraint <em>Depthwise constraint</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getPointwise_constraint <em>Pointwise constraint</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getSeparable()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Separable extends LayerWithFilter {
+ /**
+ * Returns the value of the '<em><b>Depth multiplier</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Depth multiplier</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Depth multiplier</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getSeparable_Depth_multiplier()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getDepth_multiplier();
+
+ /**
+ * Returns the value of the '<em><b>Depthwise initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Depthwise initializer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Depthwise initializer</em>' attribute.
+ * @see #setDepthwise_initializer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getSeparable_Depthwise_initializer()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getDepthwise_initializer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepthwise_initializer <em>Depthwise initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Depthwise initializer</em>' attribute.
+ * @see #getDepthwise_initializer()
+ * @generated
+ */
+ void setDepthwise_initializer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Pointwise initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pointwise initializer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pointwise initializer</em>' attribute.
+ * @see #setPointwise_initializer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getSeparable_Pointwise_initializer()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getPointwise_initializer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getPointwise_initializer <em>Pointwise initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pointwise initializer</em>' attribute.
+ * @see #getPointwise_initializer()
+ * @generated
+ */
+ void setPointwise_initializer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Depthwise regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Depthwise regularizer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Depthwise regularizer</em>' attribute.
+ * @see #setDepthwise_regularizer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getSeparable_Depthwise_regularizer()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getDepthwise_regularizer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepthwise_regularizer <em>Depthwise regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Depthwise regularizer</em>' attribute.
+ * @see #getDepthwise_regularizer()
+ * @generated
+ */
+ void setDepthwise_regularizer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Poitnwise regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Poitnwise regularizer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Poitnwise regularizer</em>' attribute.
+ * @see #setPoitnwise_regularizer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getSeparable_Poitnwise_regularizer()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getPoitnwise_regularizer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getPoitnwise_regularizer <em>Poitnwise regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Poitnwise regularizer</em>' attribute.
+ * @see #getPoitnwise_regularizer()
+ * @generated
+ */
+ void setPoitnwise_regularizer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Depthwise constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Depthwise constraint</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Depthwise constraint</em>' attribute.
+ * @see #setDepthwise_constraint(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getSeparable_Depthwise_constraint()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getDepthwise_constraint();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getDepthwise_constraint <em>Depthwise constraint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Depthwise constraint</em>' attribute.
+ * @see #getDepthwise_constraint()
+ * @generated
+ */
+ void setDepthwise_constraint(String value);
+
+ /**
+ * Returns the value of the '<em><b>Pointwise constraint</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pointwise constraint</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pointwise constraint</em>' attribute.
+ * @see #setPointwise_constraint(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getSeparable_Pointwise_constraint()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getPointwise_constraint();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable#getPointwise_constraint <em>Pointwise constraint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pointwise constraint</em>' attribute.
+ * @see #getPointwise_constraint()
+ * @generated
+ */
+ void setPointwise_constraint(String value);
+
+} // Separable
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/SeparableConv1D.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/SeparableConv1D.java
new file mode 100644
index 0000000..adf445b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/SeparableConv1D.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Separable Conv1 D</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getSeparableConv1D()
+ * @model
+ * @generated
+ */
+public interface SeparableConv1D extends Separable {
+} // SeparableConv1D
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/SeparableConv2D.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/SeparableConv2D.java
new file mode 100644
index 0000000..7058fd2
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/SeparableConv2D.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Separable Conv2 D</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getSeparableConv2D()
+ * @model
+ * @generated
+ */
+public interface SeparableConv2D extends Separable {
+} // SeparableConv2D
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Unfold.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Unfold.java
new file mode 100644
index 0000000..c9cef55
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/Unfold.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Unfold</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getUnfold()
+ * @model
+ * @generated
+ */
+public interface Unfold extends Convolution_layers {
+} // Unfold
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/basic.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/basic.java
new file mode 100644
index 0000000..daee835
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/basic.java
@@ -0,0 +1,113 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.constraints;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>basic</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic#getKernel_initializer <em>Kernel initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic#getKernel_constraint <em>Kernel constraint</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic#getKernel_regularizer <em>Kernel regularizer</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getbasic()
+ * @model abstract="true"
+ * @generated
+ */
+public interface basic extends LayerWithFilter {
+ /**
+ * Returns the value of the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kernel initializer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kernel initializer</em>' attribute.
+ * @see #setKernel_initializer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getbasic_Kernel_initializer()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getKernel_initializer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic#getKernel_initializer <em>Kernel initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Kernel initializer</em>' attribute.
+ * @see #getKernel_initializer()
+ * @generated
+ */
+ void setKernel_initializer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Kernel constraint</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kernel constraint</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kernel constraint</em>' reference.
+ * @see #setKernel_constraint(constraints)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getbasic_Kernel_constraint()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ constraints getKernel_constraint();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic#getKernel_constraint <em>Kernel constraint</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Kernel constraint</em>' reference.
+ * @see #getKernel_constraint()
+ * @generated
+ */
+ void setKernel_constraint(constraints value);
+
+ /**
+ * Returns the value of the '<em><b>Kernel regularizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kernel regularizer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kernel regularizer</em>' attribute.
+ * @see #setKernel_regularizer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#getbasic_Kernel_regularizer()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getKernel_regularizer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic#getKernel_regularizer <em>Kernel regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Kernel regularizer</em>' attribute.
+ * @see #getKernel_regularizer()
+ * @generated
+ */
+ void setKernel_regularizer(String value);
+
+} // basic
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Conv1dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Conv1dImpl.java
new file mode 100644
index 0000000..75ee6b7
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Conv1dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Conv1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class Conv1dImpl extends basicImpl implements Conv1d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Conv1dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.CONV1D;
+ }
+
+} //Conv1dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Conv2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Conv2dImpl.java
new file mode 100644
index 0000000..04eb2f1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Conv2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Conv2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class Conv2dImpl extends basicImpl implements Conv2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Conv2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.CONV2D;
+ }
+
+} //Conv2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Conv3dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Conv3dImpl.java
new file mode 100644
index 0000000..f6a0e99
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Conv3dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Conv3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class Conv3dImpl extends basicImpl implements Conv3d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Conv3dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.CONV3D;
+ }
+
+} //Conv3dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/ConvTranspose1dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/ConvTranspose1dImpl.java
new file mode 100644
index 0000000..e6b0a29
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/ConvTranspose1dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Conv Transpose1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ConvTranspose1dImpl extends LayerWithFilterImpl implements ConvTranspose1d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConvTranspose1dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.CONV_TRANSPOSE1D;
+ }
+
+} //ConvTranspose1dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/ConvTranspose2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/ConvTranspose2dImpl.java
new file mode 100644
index 0000000..5e7aabc
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/ConvTranspose2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Conv Transpose2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ConvTranspose2dImpl extends transposeImpl implements ConvTranspose2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConvTranspose2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.CONV_TRANSPOSE2D;
+ }
+
+} //ConvTranspose2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/ConvTranspose3dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/ConvTranspose3dImpl.java
new file mode 100644
index 0000000..310635d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/ConvTranspose3dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Conv Transpose3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ConvTranspose3dImpl extends transposeImpl implements ConvTranspose3d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConvTranspose3dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.CONV_TRANSPOSE3D;
+ }
+
+} //ConvTranspose3dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/ConvolutionImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/ConvolutionImpl.java
new file mode 100644
index 0000000..b369c96
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/ConvolutionImpl.java
@@ -0,0 +1,721 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Convolution</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl#getIn_channels <em>In channels</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl#getGroups <em>Groups</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl#isBiais <em>Biais</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl#getPadding_mode <em>Padding mode</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl#getData_format <em>Data format</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl#getDilation_rate <em>Dilation rate</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl#getActivation <em>Activation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl#getBias_initializer <em>Bias initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl#getActivity_regularizer <em>Activity regularizer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl#getBias_constraint <em>Bias constraint</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.ConvolutionImpl#getBias_regularizer <em>Bias regularizer</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class ConvolutionImpl extends Convolution_layersImpl implements Convolution {
+ /**
+ * The default value of the '{@link #getIn_channels() <em>In channels</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIn_channels()
+ * @generated
+ * @ordered
+ */
+ protected static final int IN_CHANNELS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIn_channels() <em>In channels</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIn_channels()
+ * @generated
+ * @ordered
+ */
+ protected int in_channels = IN_CHANNELS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getGroups() <em>Groups</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroups()
+ * @generated
+ * @ordered
+ */
+ protected static final int GROUPS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getGroups() <em>Groups</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroups()
+ * @generated
+ * @ordered
+ */
+ protected int groups = GROUPS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isBiais() <em>Biais</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBiais()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean BIAIS_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isBiais() <em>Biais</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBiais()
+ * @generated
+ * @ordered
+ */
+ protected boolean biais = BIAIS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPadding_mode() <em>Padding mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPadding_mode()
+ * @generated
+ * @ordered
+ */
+ protected static final String PADDING_MODE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPadding_mode() <em>Padding mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPadding_mode()
+ * @generated
+ * @ordered
+ */
+ protected String padding_mode = PADDING_MODE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getData_format() <em>Data format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getData_format()
+ * @generated
+ * @ordered
+ */
+ protected static final String DATA_FORMAT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getData_format() <em>Data format</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getData_format()
+ * @generated
+ * @ordered
+ */
+ protected String data_format = DATA_FORMAT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getDilation_rate() <em>Dilation rate</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDilation_rate()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> dilation_rate;
+
+ /**
+ * The default value of the '{@link #getActivation() <em>Activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActivation()
+ * @generated
+ * @ordered
+ */
+ protected static final String ACTIVATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getActivation() <em>Activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActivation()
+ * @generated
+ * @ordered
+ */
+ protected String activation = ACTIVATION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getBias_initializer() <em>Bias initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBias_initializer()
+ * @generated
+ * @ordered
+ */
+ protected static final String BIAS_INITIALIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBias_initializer() <em>Bias initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBias_initializer()
+ * @generated
+ * @ordered
+ */
+ protected String bias_initializer = BIAS_INITIALIZER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getActivity_regularizer() <em>Activity regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActivity_regularizer()
+ * @generated
+ * @ordered
+ */
+ protected static final String ACTIVITY_REGULARIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getActivity_regularizer() <em>Activity regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActivity_regularizer()
+ * @generated
+ * @ordered
+ */
+ protected String activity_regularizer = ACTIVITY_REGULARIZER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getBias_constraint() <em>Bias constraint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBias_constraint()
+ * @generated
+ * @ordered
+ */
+ protected static final String BIAS_CONSTRAINT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBias_constraint() <em>Bias constraint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBias_constraint()
+ * @generated
+ * @ordered
+ */
+ protected String bias_constraint = BIAS_CONSTRAINT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getBias_regularizer() <em>Bias regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBias_regularizer()
+ * @generated
+ * @ordered
+ */
+ protected static final String BIAS_REGULARIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBias_regularizer() <em>Bias regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBias_regularizer()
+ * @generated
+ * @ordered
+ */
+ protected String bias_regularizer = BIAS_REGULARIZER_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConvolutionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.CONVOLUTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getIn_channels() {
+ return in_channels;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIn_channels(int newIn_channels) {
+ int oldIn_channels = in_channels;
+ in_channels = newIn_channels;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.CONVOLUTION__IN_CHANNELS, oldIn_channels, in_channels));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getGroups() {
+ return groups;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setGroups(int newGroups) {
+ int oldGroups = groups;
+ groups = newGroups;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.CONVOLUTION__GROUPS, oldGroups, groups));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isBiais() {
+ return biais;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBiais(boolean newBiais) {
+ boolean oldBiais = biais;
+ biais = newBiais;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.CONVOLUTION__BIAIS, oldBiais, biais));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getPadding_mode() {
+ return padding_mode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setPadding_mode(String newPadding_mode) {
+ String oldPadding_mode = padding_mode;
+ padding_mode = newPadding_mode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.CONVOLUTION__PADDING_MODE, oldPadding_mode, padding_mode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getData_format() {
+ return data_format;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setData_format(String newData_format) {
+ String oldData_format = data_format;
+ data_format = newData_format;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.CONVOLUTION__DATA_FORMAT, oldData_format, data_format));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getDilation_rate() {
+ if (dilation_rate == null) {
+ dilation_rate = new EDataTypeUniqueEList<Integer>(Integer.class, this, Convolution_layersPackage.CONVOLUTION__DILATION_RATE);
+ }
+ return dilation_rate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getActivation() {
+ return activation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setActivation(String newActivation) {
+ String oldActivation = activation;
+ activation = newActivation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.CONVOLUTION__ACTIVATION, oldActivation, activation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getBias_initializer() {
+ return bias_initializer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBias_initializer(String newBias_initializer) {
+ String oldBias_initializer = bias_initializer;
+ bias_initializer = newBias_initializer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.CONVOLUTION__BIAS_INITIALIZER, oldBias_initializer, bias_initializer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getActivity_regularizer() {
+ return activity_regularizer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setActivity_regularizer(String newActivity_regularizer) {
+ String oldActivity_regularizer = activity_regularizer;
+ activity_regularizer = newActivity_regularizer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.CONVOLUTION__ACTIVITY_REGULARIZER, oldActivity_regularizer, activity_regularizer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getBias_constraint() {
+ return bias_constraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBias_constraint(String newBias_constraint) {
+ String oldBias_constraint = bias_constraint;
+ bias_constraint = newBias_constraint;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.CONVOLUTION__BIAS_CONSTRAINT, oldBias_constraint, bias_constraint));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getBias_regularizer() {
+ return bias_regularizer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBias_regularizer(String newBias_regularizer) {
+ String oldBias_regularizer = bias_regularizer;
+ bias_regularizer = newBias_regularizer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.CONVOLUTION__BIAS_REGULARIZER, oldBias_regularizer, bias_regularizer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Convolution_layersPackage.CONVOLUTION__IN_CHANNELS:
+ return getIn_channels();
+ case Convolution_layersPackage.CONVOLUTION__GROUPS:
+ return getGroups();
+ case Convolution_layersPackage.CONVOLUTION__BIAIS:
+ return isBiais();
+ case Convolution_layersPackage.CONVOLUTION__PADDING_MODE:
+ return getPadding_mode();
+ case Convolution_layersPackage.CONVOLUTION__DATA_FORMAT:
+ return getData_format();
+ case Convolution_layersPackage.CONVOLUTION__DILATION_RATE:
+ return getDilation_rate();
+ case Convolution_layersPackage.CONVOLUTION__ACTIVATION:
+ return getActivation();
+ case Convolution_layersPackage.CONVOLUTION__BIAS_INITIALIZER:
+ return getBias_initializer();
+ case Convolution_layersPackage.CONVOLUTION__ACTIVITY_REGULARIZER:
+ return getActivity_regularizer();
+ case Convolution_layersPackage.CONVOLUTION__BIAS_CONSTRAINT:
+ return getBias_constraint();
+ case Convolution_layersPackage.CONVOLUTION__BIAS_REGULARIZER:
+ return getBias_regularizer();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Convolution_layersPackage.CONVOLUTION__IN_CHANNELS:
+ setIn_channels((Integer)newValue);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__GROUPS:
+ setGroups((Integer)newValue);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__BIAIS:
+ setBiais((Boolean)newValue);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__PADDING_MODE:
+ setPadding_mode((String)newValue);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__DATA_FORMAT:
+ setData_format((String)newValue);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__DILATION_RATE:
+ getDilation_rate().clear();
+ getDilation_rate().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__ACTIVATION:
+ setActivation((String)newValue);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__BIAS_INITIALIZER:
+ setBias_initializer((String)newValue);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__ACTIVITY_REGULARIZER:
+ setActivity_regularizer((String)newValue);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__BIAS_CONSTRAINT:
+ setBias_constraint((String)newValue);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__BIAS_REGULARIZER:
+ setBias_regularizer((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.CONVOLUTION__IN_CHANNELS:
+ setIn_channels(IN_CHANNELS_EDEFAULT);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__GROUPS:
+ setGroups(GROUPS_EDEFAULT);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__BIAIS:
+ setBiais(BIAIS_EDEFAULT);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__PADDING_MODE:
+ setPadding_mode(PADDING_MODE_EDEFAULT);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__DATA_FORMAT:
+ setData_format(DATA_FORMAT_EDEFAULT);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__DILATION_RATE:
+ getDilation_rate().clear();
+ return;
+ case Convolution_layersPackage.CONVOLUTION__ACTIVATION:
+ setActivation(ACTIVATION_EDEFAULT);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__BIAS_INITIALIZER:
+ setBias_initializer(BIAS_INITIALIZER_EDEFAULT);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__ACTIVITY_REGULARIZER:
+ setActivity_regularizer(ACTIVITY_REGULARIZER_EDEFAULT);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__BIAS_CONSTRAINT:
+ setBias_constraint(BIAS_CONSTRAINT_EDEFAULT);
+ return;
+ case Convolution_layersPackage.CONVOLUTION__BIAS_REGULARIZER:
+ setBias_regularizer(BIAS_REGULARIZER_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.CONVOLUTION__IN_CHANNELS:
+ return in_channels != IN_CHANNELS_EDEFAULT;
+ case Convolution_layersPackage.CONVOLUTION__GROUPS:
+ return groups != GROUPS_EDEFAULT;
+ case Convolution_layersPackage.CONVOLUTION__BIAIS:
+ return biais != BIAIS_EDEFAULT;
+ case Convolution_layersPackage.CONVOLUTION__PADDING_MODE:
+ return PADDING_MODE_EDEFAULT == null ? padding_mode != null : !PADDING_MODE_EDEFAULT.equals(padding_mode);
+ case Convolution_layersPackage.CONVOLUTION__DATA_FORMAT:
+ return DATA_FORMAT_EDEFAULT == null ? data_format != null : !DATA_FORMAT_EDEFAULT.equals(data_format);
+ case Convolution_layersPackage.CONVOLUTION__DILATION_RATE:
+ return dilation_rate != null && !dilation_rate.isEmpty();
+ case Convolution_layersPackage.CONVOLUTION__ACTIVATION:
+ return ACTIVATION_EDEFAULT == null ? activation != null : !ACTIVATION_EDEFAULT.equals(activation);
+ case Convolution_layersPackage.CONVOLUTION__BIAS_INITIALIZER:
+ return BIAS_INITIALIZER_EDEFAULT == null ? bias_initializer != null : !BIAS_INITIALIZER_EDEFAULT.equals(bias_initializer);
+ case Convolution_layersPackage.CONVOLUTION__ACTIVITY_REGULARIZER:
+ return ACTIVITY_REGULARIZER_EDEFAULT == null ? activity_regularizer != null : !ACTIVITY_REGULARIZER_EDEFAULT.equals(activity_regularizer);
+ case Convolution_layersPackage.CONVOLUTION__BIAS_CONSTRAINT:
+ return BIAS_CONSTRAINT_EDEFAULT == null ? bias_constraint != null : !BIAS_CONSTRAINT_EDEFAULT.equals(bias_constraint);
+ case Convolution_layersPackage.CONVOLUTION__BIAS_REGULARIZER:
+ return BIAS_REGULARIZER_EDEFAULT == null ? bias_regularizer != null : !BIAS_REGULARIZER_EDEFAULT.equals(bias_regularizer);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (in_channels: "); //$NON-NLS-1$
+ result.append(in_channels);
+ result.append(", groups: "); //$NON-NLS-1$
+ result.append(groups);
+ result.append(", biais: "); //$NON-NLS-1$
+ result.append(biais);
+ result.append(", padding_mode: "); //$NON-NLS-1$
+ result.append(padding_mode);
+ result.append(", data_format: "); //$NON-NLS-1$
+ result.append(data_format);
+ result.append(", dilation_rate: "); //$NON-NLS-1$
+ result.append(dilation_rate);
+ result.append(", activation: "); //$NON-NLS-1$
+ result.append(activation);
+ result.append(", bias_initializer: "); //$NON-NLS-1$
+ result.append(bias_initializer);
+ result.append(", activity_regularizer: "); //$NON-NLS-1$
+ result.append(activity_regularizer);
+ result.append(", bias_constraint: "); //$NON-NLS-1$
+ result.append(bias_constraint);
+ result.append(", bias_regularizer: "); //$NON-NLS-1$
+ result.append(bias_regularizer);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ConvolutionImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Convolution_layersFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Convolution_layersFactoryImpl.java
new file mode 100644
index 0000000..2ca89fe
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Convolution_layersFactoryImpl.java
@@ -0,0 +1,226 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Convolution_layersFactoryImpl extends EFactoryImpl implements Convolution_layersFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Convolution_layersFactory init() {
+ try {
+ Convolution_layersFactory theConvolution_layersFactory = (Convolution_layersFactory)EPackage.Registry.INSTANCE.getEFactory(Convolution_layersPackage.eNS_URI);
+ if (theConvolution_layersFactory != null) {
+ return theConvolution_layersFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Convolution_layersFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Convolution_layersFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Convolution_layersPackage.UNFOLD: return createUnfold();
+ case Convolution_layersPackage.FOLD: return createFold();
+ case Convolution_layersPackage.CONV2D: return createConv2d();
+ case Convolution_layersPackage.CONV3D: return createConv3d();
+ case Convolution_layersPackage.CONV_TRANSPOSE1D: return createConvTranspose1d();
+ case Convolution_layersPackage.CONV_TRANSPOSE2D: return createConvTranspose2d();
+ case Convolution_layersPackage.CONV_TRANSPOSE3D: return createConvTranspose3d();
+ case Convolution_layersPackage.CONV1D: return createConv1d();
+ case Convolution_layersPackage.SEPARABLE_CONV2_D: return createSeparableConv2D();
+ case Convolution_layersPackage.SEPARABLE_CONV1_D: return createSeparableConv1D();
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D: return createDepthwiseConv2D();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Unfold createUnfold() {
+ UnfoldImpl unfold = new UnfoldImpl();
+ return unfold;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Fold createFold() {
+ FoldImpl fold = new FoldImpl();
+ return fold;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Conv2d createConv2d() {
+ Conv2dImpl conv2d = new Conv2dImpl();
+ return conv2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Conv3d createConv3d() {
+ Conv3dImpl conv3d = new Conv3dImpl();
+ return conv3d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ConvTranspose1d createConvTranspose1d() {
+ ConvTranspose1dImpl convTranspose1d = new ConvTranspose1dImpl();
+ return convTranspose1d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ConvTranspose2d createConvTranspose2d() {
+ ConvTranspose2dImpl convTranspose2d = new ConvTranspose2dImpl();
+ return convTranspose2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ConvTranspose3d createConvTranspose3d() {
+ ConvTranspose3dImpl convTranspose3d = new ConvTranspose3dImpl();
+ return convTranspose3d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Conv1d createConv1d() {
+ Conv1dImpl conv1d = new Conv1dImpl();
+ return conv1d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public SeparableConv2D createSeparableConv2D() {
+ SeparableConv2DImpl separableConv2D = new SeparableConv2DImpl();
+ return separableConv2D;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public SeparableConv1D createSeparableConv1D() {
+ SeparableConv1DImpl separableConv1D = new SeparableConv1DImpl();
+ return separableConv1D;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DepthwiseConv2D createDepthwiseConv2D() {
+ DepthwiseConv2DImpl depthwiseConv2D = new DepthwiseConv2DImpl();
+ return depthwiseConv2D;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Convolution_layersPackage getConvolution_layersPackage() {
+ return (Convolution_layersPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Convolution_layersPackage getPackage() {
+ return Convolution_layersPackage.eINSTANCE;
+ }
+
+} //Convolution_layersFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Convolution_layersImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Convolution_layersImpl.java
new file mode 100644
index 0000000..f0a0269
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Convolution_layersImpl.java
@@ -0,0 +1,269 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Convolution layers</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersImpl#getKernel_size <em>Kernel size</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersImpl#getStride <em>Stride</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersImpl#getPadding <em>Padding</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersImpl#getDilation <em>Dilation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Convolution_layersImpl extends ModelImpl implements Convolution_layers {
+ /**
+ * The cached value of the '{@link #getKernel_size() <em>Kernel size</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKernel_size()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> kernel_size;
+
+ /**
+ * The cached value of the '{@link #getStride() <em>Stride</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStride()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> stride;
+
+ /**
+ * The cached value of the '{@link #getPadding() <em>Padding</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPadding()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> padding;
+
+ /**
+ * The cached value of the '{@link #getDilation() <em>Dilation</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDilation()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> dilation;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Convolution_layersImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.CONVOLUTION_LAYERS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getKernel_size() {
+ if (kernel_size == null) {
+ kernel_size = new EDataTypeUniqueEList<Integer>(Integer.class, this, Convolution_layersPackage.CONVOLUTION_LAYERS__KERNEL_SIZE);
+ }
+ return kernel_size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getStride() {
+ if (stride == null) {
+ stride = new EDataTypeUniqueEList<Integer>(Integer.class, this, Convolution_layersPackage.CONVOLUTION_LAYERS__STRIDE);
+ }
+ return stride;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getPadding() {
+ if (padding == null) {
+ padding = new EDataTypeUniqueEList<Integer>(Integer.class, this, Convolution_layersPackage.CONVOLUTION_LAYERS__PADDING);
+ }
+ return padding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getDilation() {
+ if (dilation == null) {
+ dilation = new EDataTypeUniqueEList<Integer>(Integer.class, this, Convolution_layersPackage.CONVOLUTION_LAYERS__DILATION);
+ }
+ return dilation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__KERNEL_SIZE:
+ return getKernel_size();
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__STRIDE:
+ return getStride();
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__PADDING:
+ return getPadding();
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__DILATION:
+ return getDilation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__KERNEL_SIZE:
+ getKernel_size().clear();
+ getKernel_size().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__STRIDE:
+ getStride().clear();
+ getStride().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__PADDING:
+ getPadding().clear();
+ getPadding().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__DILATION:
+ getDilation().clear();
+ getDilation().addAll((Collection<? extends Integer>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__KERNEL_SIZE:
+ getKernel_size().clear();
+ return;
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__STRIDE:
+ getStride().clear();
+ return;
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__PADDING:
+ getPadding().clear();
+ return;
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__DILATION:
+ getDilation().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__KERNEL_SIZE:
+ return kernel_size != null && !kernel_size.isEmpty();
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__STRIDE:
+ return stride != null && !stride.isEmpty();
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__PADDING:
+ return padding != null && !padding.isEmpty();
+ case Convolution_layersPackage.CONVOLUTION_LAYERS__DILATION:
+ return dilation != null && !dilation.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (kernel_size: "); //$NON-NLS-1$
+ result.append(kernel_size);
+ result.append(", stride: "); //$NON-NLS-1$
+ result.append(stride);
+ result.append(", padding: "); //$NON-NLS-1$
+ result.append(padding);
+ result.append(", dilation: "); //$NON-NLS-1$
+ result.append(dilation);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Convolution_layersImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Convolution_layersPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Convolution_layersPackageImpl.java
new file mode 100644
index 0000000..6682399
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/Convolution_layersPackageImpl.java
@@ -0,0 +1,1113 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Fold;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.LayerWithFilter;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.SeparableConv1D;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.SeparableConv2D;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Unfold;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.transpose;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Convolution_layersPackageImpl extends EPackageImpl implements Convolution_layersPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass convolutionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass convolution_layersEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass unfoldEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass foldEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass conv2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass basicEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass layerWithFilterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass conv3dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass convTranspose1dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass convTranspose2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transposeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass convTranspose3dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass conv1dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass separableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass separableConv2DEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass separableConv1DEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass depthwiseConv2DEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Convolution_layersPackageImpl() {
+ super(eNS_URI, Convolution_layersFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Convolution_layersPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Convolution_layersPackage init() {
+ if (isInited) return (Convolution_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredConvolution_layersPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = registeredConvolution_layersPackage instanceof Convolution_layersPackageImpl ? (Convolution_layersPackageImpl)registeredConvolution_layersPackage : new Convolution_layersPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theConvolution_layersPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theConvolution_layersPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theConvolution_layersPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Convolution_layersPackage.eNS_URI, theConvolution_layersPackage);
+ return theConvolution_layersPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConvolution() {
+ return convolutionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_In_channels() {
+ return (EAttribute)convolutionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_Groups() {
+ return (EAttribute)convolutionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_Biais() {
+ return (EAttribute)convolutionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_Padding_mode() {
+ return (EAttribute)convolutionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_Data_format() {
+ return (EAttribute)convolutionEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_Dilation_rate() {
+ return (EAttribute)convolutionEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_Activation() {
+ return (EAttribute)convolutionEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_Bias_initializer() {
+ return (EAttribute)convolutionEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_Activity_regularizer() {
+ return (EAttribute)convolutionEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_Bias_constraint() {
+ return (EAttribute)convolutionEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_Bias_regularizer() {
+ return (EAttribute)convolutionEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConvolution_layers() {
+ return convolution_layersEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_layers_Kernel_size() {
+ return (EAttribute)convolution_layersEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_layers_Stride() {
+ return (EAttribute)convolution_layersEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_layers_Padding() {
+ return (EAttribute)convolution_layersEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getConvolution_layers_Dilation() {
+ return (EAttribute)convolution_layersEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getUnfold() {
+ return unfoldEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getFold() {
+ return foldEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getFold_Output_size() {
+ return (EAttribute)foldEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConv2d() {
+ return conv2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getbasic() {
+ return basicEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getbasic_Kernel_initializer() {
+ return (EAttribute)basicEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getbasic_Kernel_constraint() {
+ return (EReference)basicEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getbasic_Kernel_regularizer() {
+ return (EAttribute)basicEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLayerWithFilter() {
+ return layerWithFilterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLayerWithFilter_Out_channels() {
+ return (EAttribute)layerWithFilterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConv3d() {
+ return conv3dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConvTranspose1d() {
+ return convTranspose1dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConvTranspose2d() {
+ return convTranspose2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass gettranspose() {
+ return transposeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute gettranspose_Output_padding() {
+ return (EAttribute)transposeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConvTranspose3d() {
+ return convTranspose3dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConv1d() {
+ return conv1dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSeparable() {
+ return separableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSeparable_Depth_multiplier() {
+ return (EAttribute)separableEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSeparable_Depthwise_initializer() {
+ return (EAttribute)separableEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSeparable_Pointwise_initializer() {
+ return (EAttribute)separableEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSeparable_Depthwise_regularizer() {
+ return (EAttribute)separableEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSeparable_Poitnwise_regularizer() {
+ return (EAttribute)separableEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSeparable_Depthwise_constraint() {
+ return (EAttribute)separableEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSeparable_Pointwise_constraint() {
+ return (EAttribute)separableEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSeparableConv2D() {
+ return separableConv2DEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSeparableConv1D() {
+ return separableConv1DEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDepthwiseConv2D() {
+ return depthwiseConv2DEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDepthwiseConv2D_Depth_multiplier() {
+ return (EAttribute)depthwiseConv2DEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDepthwiseConv2D_Depthwise_initializer() {
+ return (EAttribute)depthwiseConv2DEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDepthwiseConv2D_Depthwise_regularizer() {
+ return (EAttribute)depthwiseConv2DEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDepthwiseConv2D_Depthwise_constraint() {
+ return (EAttribute)depthwiseConv2DEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Convolution_layersFactory getConvolution_layersFactory() {
+ return (Convolution_layersFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ convolutionEClass = createEClass(CONVOLUTION);
+ createEAttribute(convolutionEClass, CONVOLUTION__IN_CHANNELS);
+ createEAttribute(convolutionEClass, CONVOLUTION__GROUPS);
+ createEAttribute(convolutionEClass, CONVOLUTION__BIAIS);
+ createEAttribute(convolutionEClass, CONVOLUTION__PADDING_MODE);
+ createEAttribute(convolutionEClass, CONVOLUTION__DATA_FORMAT);
+ createEAttribute(convolutionEClass, CONVOLUTION__DILATION_RATE);
+ createEAttribute(convolutionEClass, CONVOLUTION__ACTIVATION);
+ createEAttribute(convolutionEClass, CONVOLUTION__BIAS_INITIALIZER);
+ createEAttribute(convolutionEClass, CONVOLUTION__ACTIVITY_REGULARIZER);
+ createEAttribute(convolutionEClass, CONVOLUTION__BIAS_CONSTRAINT);
+ createEAttribute(convolutionEClass, CONVOLUTION__BIAS_REGULARIZER);
+
+ convolution_layersEClass = createEClass(CONVOLUTION_LAYERS);
+ createEAttribute(convolution_layersEClass, CONVOLUTION_LAYERS__KERNEL_SIZE);
+ createEAttribute(convolution_layersEClass, CONVOLUTION_LAYERS__STRIDE);
+ createEAttribute(convolution_layersEClass, CONVOLUTION_LAYERS__PADDING);
+ createEAttribute(convolution_layersEClass, CONVOLUTION_LAYERS__DILATION);
+
+ unfoldEClass = createEClass(UNFOLD);
+
+ foldEClass = createEClass(FOLD);
+ createEAttribute(foldEClass, FOLD__OUTPUT_SIZE);
+
+ conv2dEClass = createEClass(CONV2D);
+
+ basicEClass = createEClass(BASIC);
+ createEAttribute(basicEClass, BASIC__KERNEL_INITIALIZER);
+ createEReference(basicEClass, BASIC__KERNEL_CONSTRAINT);
+ createEAttribute(basicEClass, BASIC__KERNEL_REGULARIZER);
+
+ layerWithFilterEClass = createEClass(LAYER_WITH_FILTER);
+ createEAttribute(layerWithFilterEClass, LAYER_WITH_FILTER__OUT_CHANNELS);
+
+ conv3dEClass = createEClass(CONV3D);
+
+ convTranspose1dEClass = createEClass(CONV_TRANSPOSE1D);
+
+ convTranspose2dEClass = createEClass(CONV_TRANSPOSE2D);
+
+ transposeEClass = createEClass(TRANSPOSE);
+ createEAttribute(transposeEClass, TRANSPOSE__OUTPUT_PADDING);
+
+ convTranspose3dEClass = createEClass(CONV_TRANSPOSE3D);
+
+ conv1dEClass = createEClass(CONV1D);
+
+ separableEClass = createEClass(SEPARABLE);
+ createEAttribute(separableEClass, SEPARABLE__DEPTH_MULTIPLIER);
+ createEAttribute(separableEClass, SEPARABLE__DEPTHWISE_INITIALIZER);
+ createEAttribute(separableEClass, SEPARABLE__POINTWISE_INITIALIZER);
+ createEAttribute(separableEClass, SEPARABLE__DEPTHWISE_REGULARIZER);
+ createEAttribute(separableEClass, SEPARABLE__POITNWISE_REGULARIZER);
+ createEAttribute(separableEClass, SEPARABLE__DEPTHWISE_CONSTRAINT);
+ createEAttribute(separableEClass, SEPARABLE__POINTWISE_CONSTRAINT);
+
+ separableConv2DEClass = createEClass(SEPARABLE_CONV2_D);
+
+ separableConv1DEClass = createEClass(SEPARABLE_CONV1_D);
+
+ depthwiseConv2DEClass = createEClass(DEPTHWISE_CONV2_D);
+ createEAttribute(depthwiseConv2DEClass, DEPTHWISE_CONV2_D__DEPTH_MULTIPLIER);
+ createEAttribute(depthwiseConv2DEClass, DEPTHWISE_CONV2_D__DEPTHWISE_INITIALIZER);
+ createEAttribute(depthwiseConv2DEClass, DEPTHWISE_CONV2_D__DEPTHWISE_REGULARIZER);
+ createEAttribute(depthwiseConv2DEClass, DEPTHWISE_CONV2_D__DEPTHWISE_CONSTRAINT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ Layer_weight_constraintsPackage theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackage)EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ convolutionEClass.getESuperTypes().add(this.getConvolution_layers());
+ convolution_layersEClass.getESuperTypes().add(theModulePackage.getModel());
+ unfoldEClass.getESuperTypes().add(this.getConvolution_layers());
+ foldEClass.getESuperTypes().add(this.getConvolution_layers());
+ conv2dEClass.getESuperTypes().add(this.getbasic());
+ basicEClass.getESuperTypes().add(this.getLayerWithFilter());
+ layerWithFilterEClass.getESuperTypes().add(this.getConvolution());
+ conv3dEClass.getESuperTypes().add(this.getbasic());
+ convTranspose1dEClass.getESuperTypes().add(this.getLayerWithFilter());
+ convTranspose2dEClass.getESuperTypes().add(this.gettranspose());
+ transposeEClass.getESuperTypes().add(this.getbasic());
+ convTranspose3dEClass.getESuperTypes().add(this.gettranspose());
+ conv1dEClass.getESuperTypes().add(this.getbasic());
+ separableEClass.getESuperTypes().add(this.getLayerWithFilter());
+ separableConv2DEClass.getESuperTypes().add(this.getSeparable());
+ separableConv1DEClass.getESuperTypes().add(this.getSeparable());
+ depthwiseConv2DEClass.getESuperTypes().add(this.getConvolution());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(convolutionEClass, Convolution.class, "Convolution", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getConvolution_In_channels(), theTypesPackage.getInteger(), "in_channels", null, 0, 1, Convolution.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConvolution_Groups(), theTypesPackage.getInteger(), "groups", null, 0, 1, Convolution.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConvolution_Biais(), theTypesPackage.getBoolean(), "biais", null, 0, 1, Convolution.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConvolution_Padding_mode(), theTypesPackage.getString(), "padding_mode", null, 0, 1, Convolution.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConvolution_Data_format(), theTypesPackage.getString(), "data_format", null, 0, 1, Convolution.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConvolution_Dilation_rate(), theTypesPackage.getInteger(), "dilation_rate", null, 0, -1, Convolution.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConvolution_Activation(), theTypesPackage.getString(), "activation", null, 0, 1, Convolution.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConvolution_Bias_initializer(), theTypesPackage.getString(), "bias_initializer", null, 1, 1, Convolution.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConvolution_Activity_regularizer(), theTypesPackage.getString(), "activity_regularizer", null, 1, 1, Convolution.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConvolution_Bias_constraint(), theTypesPackage.getString(), "bias_constraint", null, 1, 1, Convolution.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConvolution_Bias_regularizer(), theTypesPackage.getString(), "bias_regularizer", null, 1, 1, Convolution.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(convolution_layersEClass, Convolution_layers.class, "Convolution_layers", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getConvolution_layers_Kernel_size(), theTypesPackage.getInteger(), "kernel_size", null, 0, -1, Convolution_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConvolution_layers_Stride(), theTypesPackage.getInteger(), "stride", null, 0, -1, Convolution_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConvolution_layers_Padding(), theTypesPackage.getInteger(), "padding", null, 0, -1, Convolution_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getConvolution_layers_Dilation(), theTypesPackage.getInteger(), "dilation", null, 0, -1, Convolution_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(unfoldEClass, Unfold.class, "Unfold", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(foldEClass, Fold.class, "Fold", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getFold_Output_size(), theTypesPackage.getInteger(), "output_size", null, 0, -1, Fold.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(conv2dEClass, Conv2d.class, "Conv2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(basicEClass, basic.class, "basic", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getbasic_Kernel_initializer(), theTypesPackage.getString(), "kernel_initializer", null, 0, 1, basic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getbasic_Kernel_constraint(), theLayer_weight_constraintsPackage.getconstraints(), null, "kernel_constraint", null, 1, 1, basic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getbasic_Kernel_regularizer(), theTypesPackage.getString(), "kernel_regularizer", null, 0, 1, basic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(layerWithFilterEClass, LayerWithFilter.class, "LayerWithFilter", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLayerWithFilter_Out_channels(), theTypesPackage.getInteger(), "out_channels", null, 1, 1, LayerWithFilter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(conv3dEClass, Conv3d.class, "Conv3d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(convTranspose1dEClass, ConvTranspose1d.class, "ConvTranspose1d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(convTranspose2dEClass, ConvTranspose2d.class, "ConvTranspose2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(transposeEClass, transpose.class, "transpose", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(gettranspose_Output_padding(), theTypesPackage.getInteger(), "output_padding", null, 0, -1, transpose.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(convTranspose3dEClass, ConvTranspose3d.class, "ConvTranspose3d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(conv1dEClass, Conv1d.class, "Conv1d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(separableEClass, Separable.class, "Separable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getSeparable_Depth_multiplier(), theTypesPackage.getInteger(), "depth_multiplier", null, 0, -1, Separable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getSeparable_Depthwise_initializer(), theTypesPackage.getString(), "depthwise_initializer", null, 0, 1, Separable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getSeparable_Pointwise_initializer(), theTypesPackage.getString(), "pointwise_initializer", null, 0, 1, Separable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getSeparable_Depthwise_regularizer(), theTypesPackage.getString(), "depthwise_regularizer", null, 1, 1, Separable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getSeparable_Poitnwise_regularizer(), theTypesPackage.getString(), "poitnwise_regularizer", null, 1, 1, Separable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getSeparable_Depthwise_constraint(), theTypesPackage.getString(), "depthwise_constraint", null, 1, 1, Separable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getSeparable_Pointwise_constraint(), theTypesPackage.getString(), "pointwise_constraint", null, 1, 1, Separable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(separableConv2DEClass, SeparableConv2D.class, "SeparableConv2D", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(separableConv1DEClass, SeparableConv1D.class, "SeparableConv1D", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(depthwiseConv2DEClass, DepthwiseConv2D.class, "DepthwiseConv2D", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDepthwiseConv2D_Depth_multiplier(), theTypesPackage.getInteger(), "depth_multiplier", null, 0, -1, DepthwiseConv2D.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDepthwiseConv2D_Depthwise_initializer(), theTypesPackage.getString(), "depthwise_initializer", null, 1, 1, DepthwiseConv2D.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDepthwiseConv2D_Depthwise_regularizer(), theTypesPackage.getString(), "depthwise_regularizer", null, 1, 1, DepthwiseConv2D.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDepthwiseConv2D_Depthwise_constraint(), theTypesPackage.getString(), "depthwise_constraint", null, 1, 1, DepthwiseConv2D.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ }
+
+} //Convolution_layersPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/DepthwiseConv2DImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/DepthwiseConv2DImpl.java
new file mode 100644
index 0000000..4c634fb
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/DepthwiseConv2DImpl.java
@@ -0,0 +1,329 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Depthwise Conv2 D</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.DepthwiseConv2DImpl#getDepth_multiplier <em>Depth multiplier</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.DepthwiseConv2DImpl#getDepthwise_initializer <em>Depthwise initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.DepthwiseConv2DImpl#getDepthwise_regularizer <em>Depthwise regularizer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.DepthwiseConv2DImpl#getDepthwise_constraint <em>Depthwise constraint</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DepthwiseConv2DImpl extends ConvolutionImpl implements DepthwiseConv2D {
+ /**
+ * The cached value of the '{@link #getDepth_multiplier() <em>Depth multiplier</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDepth_multiplier()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> depth_multiplier;
+
+ /**
+ * The default value of the '{@link #getDepthwise_initializer() <em>Depthwise initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDepthwise_initializer()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEPTHWISE_INITIALIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDepthwise_initializer() <em>Depthwise initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDepthwise_initializer()
+ * @generated
+ * @ordered
+ */
+ protected String depthwise_initializer = DEPTHWISE_INITIALIZER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDepthwise_regularizer() <em>Depthwise regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDepthwise_regularizer()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEPTHWISE_REGULARIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDepthwise_regularizer() <em>Depthwise regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDepthwise_regularizer()
+ * @generated
+ * @ordered
+ */
+ protected String depthwise_regularizer = DEPTHWISE_REGULARIZER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDepthwise_constraint() <em>Depthwise constraint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDepthwise_constraint()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEPTHWISE_CONSTRAINT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDepthwise_constraint() <em>Depthwise constraint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDepthwise_constraint()
+ * @generated
+ * @ordered
+ */
+ protected String depthwise_constraint = DEPTHWISE_CONSTRAINT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DepthwiseConv2DImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.DEPTHWISE_CONV2_D;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getDepth_multiplier() {
+ if (depth_multiplier == null) {
+ depth_multiplier = new EDataTypeUniqueEList<Integer>(Integer.class, this, Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTH_MULTIPLIER);
+ }
+ return depth_multiplier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getDepthwise_initializer() {
+ return depthwise_initializer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDepthwise_initializer(String newDepthwise_initializer) {
+ String oldDepthwise_initializer = depthwise_initializer;
+ depthwise_initializer = newDepthwise_initializer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_INITIALIZER, oldDepthwise_initializer, depthwise_initializer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getDepthwise_regularizer() {
+ return depthwise_regularizer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDepthwise_regularizer(String newDepthwise_regularizer) {
+ String oldDepthwise_regularizer = depthwise_regularizer;
+ depthwise_regularizer = newDepthwise_regularizer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_REGULARIZER, oldDepthwise_regularizer, depthwise_regularizer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getDepthwise_constraint() {
+ return depthwise_constraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDepthwise_constraint(String newDepthwise_constraint) {
+ String oldDepthwise_constraint = depthwise_constraint;
+ depthwise_constraint = newDepthwise_constraint;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_CONSTRAINT, oldDepthwise_constraint, depthwise_constraint));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTH_MULTIPLIER:
+ return getDepth_multiplier();
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_INITIALIZER:
+ return getDepthwise_initializer();
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_REGULARIZER:
+ return getDepthwise_regularizer();
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_CONSTRAINT:
+ return getDepthwise_constraint();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTH_MULTIPLIER:
+ getDepth_multiplier().clear();
+ getDepth_multiplier().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_INITIALIZER:
+ setDepthwise_initializer((String)newValue);
+ return;
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_REGULARIZER:
+ setDepthwise_regularizer((String)newValue);
+ return;
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_CONSTRAINT:
+ setDepthwise_constraint((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTH_MULTIPLIER:
+ getDepth_multiplier().clear();
+ return;
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_INITIALIZER:
+ setDepthwise_initializer(DEPTHWISE_INITIALIZER_EDEFAULT);
+ return;
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_REGULARIZER:
+ setDepthwise_regularizer(DEPTHWISE_REGULARIZER_EDEFAULT);
+ return;
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_CONSTRAINT:
+ setDepthwise_constraint(DEPTHWISE_CONSTRAINT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTH_MULTIPLIER:
+ return depth_multiplier != null && !depth_multiplier.isEmpty();
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_INITIALIZER:
+ return DEPTHWISE_INITIALIZER_EDEFAULT == null ? depthwise_initializer != null : !DEPTHWISE_INITIALIZER_EDEFAULT.equals(depthwise_initializer);
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_REGULARIZER:
+ return DEPTHWISE_REGULARIZER_EDEFAULT == null ? depthwise_regularizer != null : !DEPTHWISE_REGULARIZER_EDEFAULT.equals(depthwise_regularizer);
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D__DEPTHWISE_CONSTRAINT:
+ return DEPTHWISE_CONSTRAINT_EDEFAULT == null ? depthwise_constraint != null : !DEPTHWISE_CONSTRAINT_EDEFAULT.equals(depthwise_constraint);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (depth_multiplier: "); //$NON-NLS-1$
+ result.append(depth_multiplier);
+ result.append(", depthwise_initializer: "); //$NON-NLS-1$
+ result.append(depthwise_initializer);
+ result.append(", depthwise_regularizer: "); //$NON-NLS-1$
+ result.append(depthwise_regularizer);
+ result.append(", depthwise_constraint: "); //$NON-NLS-1$
+ result.append(depthwise_constraint);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DepthwiseConv2DImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/FoldImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/FoldImpl.java
new file mode 100644
index 0000000..23a81f2
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/FoldImpl.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Fold;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Fold</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.FoldImpl#getOutput_size <em>Output size</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FoldImpl extends Convolution_layersImpl implements Fold {
+ /**
+ * The cached value of the '{@link #getOutput_size() <em>Output size</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutput_size()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> output_size;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FoldImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.FOLD;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getOutput_size() {
+ if (output_size == null) {
+ output_size = new EDataTypeUniqueEList<Integer>(Integer.class, this, Convolution_layersPackage.FOLD__OUTPUT_SIZE);
+ }
+ return output_size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Convolution_layersPackage.FOLD__OUTPUT_SIZE:
+ return getOutput_size();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Convolution_layersPackage.FOLD__OUTPUT_SIZE:
+ getOutput_size().clear();
+ getOutput_size().addAll((Collection<? extends Integer>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.FOLD__OUTPUT_SIZE:
+ getOutput_size().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.FOLD__OUTPUT_SIZE:
+ return output_size != null && !output_size.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (output_size: "); //$NON-NLS-1$
+ result.append(output_size);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FoldImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/LayerWithFilterImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/LayerWithFilterImpl.java
new file mode 100644
index 0000000..f7ee965
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/LayerWithFilterImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.LayerWithFilter;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Layer With Filter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.LayerWithFilterImpl#getOut_channels <em>Out channels</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class LayerWithFilterImpl extends ConvolutionImpl implements LayerWithFilter {
+ /**
+ * The default value of the '{@link #getOut_channels() <em>Out channels</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOut_channels()
+ * @generated
+ * @ordered
+ */
+ protected static final int OUT_CHANNELS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getOut_channels() <em>Out channels</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOut_channels()
+ * @generated
+ * @ordered
+ */
+ protected int out_channels = OUT_CHANNELS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LayerWithFilterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.LAYER_WITH_FILTER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getOut_channels() {
+ return out_channels;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setOut_channels(int newOut_channels) {
+ int oldOut_channels = out_channels;
+ out_channels = newOut_channels;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.LAYER_WITH_FILTER__OUT_CHANNELS, oldOut_channels, out_channels));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Convolution_layersPackage.LAYER_WITH_FILTER__OUT_CHANNELS:
+ return getOut_channels();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Convolution_layersPackage.LAYER_WITH_FILTER__OUT_CHANNELS:
+ setOut_channels((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.LAYER_WITH_FILTER__OUT_CHANNELS:
+ setOut_channels(OUT_CHANNELS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.LAYER_WITH_FILTER__OUT_CHANNELS:
+ return out_channels != OUT_CHANNELS_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (out_channels: "); //$NON-NLS-1$
+ result.append(out_channels);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LayerWithFilterImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/SeparableConv1DImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/SeparableConv1DImpl.java
new file mode 100644
index 0000000..0ac0d08
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/SeparableConv1DImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.SeparableConv1D;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Separable Conv1 D</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SeparableConv1DImpl extends SeparableImpl implements SeparableConv1D {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SeparableConv1DImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.SEPARABLE_CONV1_D;
+ }
+
+} //SeparableConv1DImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/SeparableConv2DImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/SeparableConv2DImpl.java
new file mode 100644
index 0000000..a047ad8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/SeparableConv2DImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.SeparableConv2D;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Separable Conv2 D</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SeparableConv2DImpl extends SeparableImpl implements SeparableConv2D {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SeparableConv2DImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.SEPARABLE_CONV2_D;
+ }
+
+} //SeparableConv2DImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/SeparableImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/SeparableImpl.java
new file mode 100644
index 0000000..a1f92ff
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/SeparableImpl.java
@@ -0,0 +1,497 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Separable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableImpl#getDepth_multiplier <em>Depth multiplier</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableImpl#getDepthwise_initializer <em>Depthwise initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableImpl#getPointwise_initializer <em>Pointwise initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableImpl#getDepthwise_regularizer <em>Depthwise regularizer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableImpl#getPoitnwise_regularizer <em>Poitnwise regularizer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableImpl#getDepthwise_constraint <em>Depthwise constraint</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.SeparableImpl#getPointwise_constraint <em>Pointwise constraint</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class SeparableImpl extends LayerWithFilterImpl implements Separable {
+ /**
+ * The cached value of the '{@link #getDepth_multiplier() <em>Depth multiplier</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDepth_multiplier()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> depth_multiplier;
+
+ /**
+ * The default value of the '{@link #getDepthwise_initializer() <em>Depthwise initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDepthwise_initializer()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEPTHWISE_INITIALIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDepthwise_initializer() <em>Depthwise initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDepthwise_initializer()
+ * @generated
+ * @ordered
+ */
+ protected String depthwise_initializer = DEPTHWISE_INITIALIZER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPointwise_initializer() <em>Pointwise initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPointwise_initializer()
+ * @generated
+ * @ordered
+ */
+ protected static final String POINTWISE_INITIALIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPointwise_initializer() <em>Pointwise initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPointwise_initializer()
+ * @generated
+ * @ordered
+ */
+ protected String pointwise_initializer = POINTWISE_INITIALIZER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDepthwise_regularizer() <em>Depthwise regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDepthwise_regularizer()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEPTHWISE_REGULARIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDepthwise_regularizer() <em>Depthwise regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDepthwise_regularizer()
+ * @generated
+ * @ordered
+ */
+ protected String depthwise_regularizer = DEPTHWISE_REGULARIZER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPoitnwise_regularizer() <em>Poitnwise regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPoitnwise_regularizer()
+ * @generated
+ * @ordered
+ */
+ protected static final String POITNWISE_REGULARIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPoitnwise_regularizer() <em>Poitnwise regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPoitnwise_regularizer()
+ * @generated
+ * @ordered
+ */
+ protected String poitnwise_regularizer = POITNWISE_REGULARIZER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDepthwise_constraint() <em>Depthwise constraint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDepthwise_constraint()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEPTHWISE_CONSTRAINT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDepthwise_constraint() <em>Depthwise constraint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDepthwise_constraint()
+ * @generated
+ * @ordered
+ */
+ protected String depthwise_constraint = DEPTHWISE_CONSTRAINT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPointwise_constraint() <em>Pointwise constraint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPointwise_constraint()
+ * @generated
+ * @ordered
+ */
+ protected static final String POINTWISE_CONSTRAINT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPointwise_constraint() <em>Pointwise constraint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPointwise_constraint()
+ * @generated
+ * @ordered
+ */
+ protected String pointwise_constraint = POINTWISE_CONSTRAINT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SeparableImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.SEPARABLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getDepth_multiplier() {
+ if (depth_multiplier == null) {
+ depth_multiplier = new EDataTypeUniqueEList<Integer>(Integer.class, this, Convolution_layersPackage.SEPARABLE__DEPTH_MULTIPLIER);
+ }
+ return depth_multiplier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getDepthwise_initializer() {
+ return depthwise_initializer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDepthwise_initializer(String newDepthwise_initializer) {
+ String oldDepthwise_initializer = depthwise_initializer;
+ depthwise_initializer = newDepthwise_initializer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.SEPARABLE__DEPTHWISE_INITIALIZER, oldDepthwise_initializer, depthwise_initializer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getPointwise_initializer() {
+ return pointwise_initializer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setPointwise_initializer(String newPointwise_initializer) {
+ String oldPointwise_initializer = pointwise_initializer;
+ pointwise_initializer = newPointwise_initializer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.SEPARABLE__POINTWISE_INITIALIZER, oldPointwise_initializer, pointwise_initializer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getDepthwise_regularizer() {
+ return depthwise_regularizer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDepthwise_regularizer(String newDepthwise_regularizer) {
+ String oldDepthwise_regularizer = depthwise_regularizer;
+ depthwise_regularizer = newDepthwise_regularizer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.SEPARABLE__DEPTHWISE_REGULARIZER, oldDepthwise_regularizer, depthwise_regularizer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getPoitnwise_regularizer() {
+ return poitnwise_regularizer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setPoitnwise_regularizer(String newPoitnwise_regularizer) {
+ String oldPoitnwise_regularizer = poitnwise_regularizer;
+ poitnwise_regularizer = newPoitnwise_regularizer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.SEPARABLE__POITNWISE_REGULARIZER, oldPoitnwise_regularizer, poitnwise_regularizer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getDepthwise_constraint() {
+ return depthwise_constraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDepthwise_constraint(String newDepthwise_constraint) {
+ String oldDepthwise_constraint = depthwise_constraint;
+ depthwise_constraint = newDepthwise_constraint;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.SEPARABLE__DEPTHWISE_CONSTRAINT, oldDepthwise_constraint, depthwise_constraint));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getPointwise_constraint() {
+ return pointwise_constraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setPointwise_constraint(String newPointwise_constraint) {
+ String oldPointwise_constraint = pointwise_constraint;
+ pointwise_constraint = newPointwise_constraint;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.SEPARABLE__POINTWISE_CONSTRAINT, oldPointwise_constraint, pointwise_constraint));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Convolution_layersPackage.SEPARABLE__DEPTH_MULTIPLIER:
+ return getDepth_multiplier();
+ case Convolution_layersPackage.SEPARABLE__DEPTHWISE_INITIALIZER:
+ return getDepthwise_initializer();
+ case Convolution_layersPackage.SEPARABLE__POINTWISE_INITIALIZER:
+ return getPointwise_initializer();
+ case Convolution_layersPackage.SEPARABLE__DEPTHWISE_REGULARIZER:
+ return getDepthwise_regularizer();
+ case Convolution_layersPackage.SEPARABLE__POITNWISE_REGULARIZER:
+ return getPoitnwise_regularizer();
+ case Convolution_layersPackage.SEPARABLE__DEPTHWISE_CONSTRAINT:
+ return getDepthwise_constraint();
+ case Convolution_layersPackage.SEPARABLE__POINTWISE_CONSTRAINT:
+ return getPointwise_constraint();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Convolution_layersPackage.SEPARABLE__DEPTH_MULTIPLIER:
+ getDepth_multiplier().clear();
+ getDepth_multiplier().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case Convolution_layersPackage.SEPARABLE__DEPTHWISE_INITIALIZER:
+ setDepthwise_initializer((String)newValue);
+ return;
+ case Convolution_layersPackage.SEPARABLE__POINTWISE_INITIALIZER:
+ setPointwise_initializer((String)newValue);
+ return;
+ case Convolution_layersPackage.SEPARABLE__DEPTHWISE_REGULARIZER:
+ setDepthwise_regularizer((String)newValue);
+ return;
+ case Convolution_layersPackage.SEPARABLE__POITNWISE_REGULARIZER:
+ setPoitnwise_regularizer((String)newValue);
+ return;
+ case Convolution_layersPackage.SEPARABLE__DEPTHWISE_CONSTRAINT:
+ setDepthwise_constraint((String)newValue);
+ return;
+ case Convolution_layersPackage.SEPARABLE__POINTWISE_CONSTRAINT:
+ setPointwise_constraint((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.SEPARABLE__DEPTH_MULTIPLIER:
+ getDepth_multiplier().clear();
+ return;
+ case Convolution_layersPackage.SEPARABLE__DEPTHWISE_INITIALIZER:
+ setDepthwise_initializer(DEPTHWISE_INITIALIZER_EDEFAULT);
+ return;
+ case Convolution_layersPackage.SEPARABLE__POINTWISE_INITIALIZER:
+ setPointwise_initializer(POINTWISE_INITIALIZER_EDEFAULT);
+ return;
+ case Convolution_layersPackage.SEPARABLE__DEPTHWISE_REGULARIZER:
+ setDepthwise_regularizer(DEPTHWISE_REGULARIZER_EDEFAULT);
+ return;
+ case Convolution_layersPackage.SEPARABLE__POITNWISE_REGULARIZER:
+ setPoitnwise_regularizer(POITNWISE_REGULARIZER_EDEFAULT);
+ return;
+ case Convolution_layersPackage.SEPARABLE__DEPTHWISE_CONSTRAINT:
+ setDepthwise_constraint(DEPTHWISE_CONSTRAINT_EDEFAULT);
+ return;
+ case Convolution_layersPackage.SEPARABLE__POINTWISE_CONSTRAINT:
+ setPointwise_constraint(POINTWISE_CONSTRAINT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.SEPARABLE__DEPTH_MULTIPLIER:
+ return depth_multiplier != null && !depth_multiplier.isEmpty();
+ case Convolution_layersPackage.SEPARABLE__DEPTHWISE_INITIALIZER:
+ return DEPTHWISE_INITIALIZER_EDEFAULT == null ? depthwise_initializer != null : !DEPTHWISE_INITIALIZER_EDEFAULT.equals(depthwise_initializer);
+ case Convolution_layersPackage.SEPARABLE__POINTWISE_INITIALIZER:
+ return POINTWISE_INITIALIZER_EDEFAULT == null ? pointwise_initializer != null : !POINTWISE_INITIALIZER_EDEFAULT.equals(pointwise_initializer);
+ case Convolution_layersPackage.SEPARABLE__DEPTHWISE_REGULARIZER:
+ return DEPTHWISE_REGULARIZER_EDEFAULT == null ? depthwise_regularizer != null : !DEPTHWISE_REGULARIZER_EDEFAULT.equals(depthwise_regularizer);
+ case Convolution_layersPackage.SEPARABLE__POITNWISE_REGULARIZER:
+ return POITNWISE_REGULARIZER_EDEFAULT == null ? poitnwise_regularizer != null : !POITNWISE_REGULARIZER_EDEFAULT.equals(poitnwise_regularizer);
+ case Convolution_layersPackage.SEPARABLE__DEPTHWISE_CONSTRAINT:
+ return DEPTHWISE_CONSTRAINT_EDEFAULT == null ? depthwise_constraint != null : !DEPTHWISE_CONSTRAINT_EDEFAULT.equals(depthwise_constraint);
+ case Convolution_layersPackage.SEPARABLE__POINTWISE_CONSTRAINT:
+ return POINTWISE_CONSTRAINT_EDEFAULT == null ? pointwise_constraint != null : !POINTWISE_CONSTRAINT_EDEFAULT.equals(pointwise_constraint);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (depth_multiplier: "); //$NON-NLS-1$
+ result.append(depth_multiplier);
+ result.append(", depthwise_initializer: "); //$NON-NLS-1$
+ result.append(depthwise_initializer);
+ result.append(", pointwise_initializer: "); //$NON-NLS-1$
+ result.append(pointwise_initializer);
+ result.append(", depthwise_regularizer: "); //$NON-NLS-1$
+ result.append(depthwise_regularizer);
+ result.append(", poitnwise_regularizer: "); //$NON-NLS-1$
+ result.append(poitnwise_regularizer);
+ result.append(", depthwise_constraint: "); //$NON-NLS-1$
+ result.append(depthwise_constraint);
+ result.append(", pointwise_constraint: "); //$NON-NLS-1$
+ result.append(pointwise_constraint);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SeparableImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/UnfoldImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/UnfoldImpl.java
new file mode 100644
index 0000000..b53d99e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/UnfoldImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Unfold;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Unfold</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class UnfoldImpl extends Convolution_layersImpl implements Unfold {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UnfoldImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.UNFOLD;
+ }
+
+} //UnfoldImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/basicImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/basicImpl.java
new file mode 100644
index 0000000..2924efc
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/basicImpl.java
@@ -0,0 +1,294 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.constraints;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>basic</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.basicImpl#getKernel_initializer <em>Kernel initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.basicImpl#getKernel_constraint <em>Kernel constraint</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.basicImpl#getKernel_regularizer <em>Kernel regularizer</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class basicImpl extends LayerWithFilterImpl implements basic {
+ /**
+ * The default value of the '{@link #getKernel_initializer() <em>Kernel initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKernel_initializer()
+ * @generated
+ * @ordered
+ */
+ protected static final String KERNEL_INITIALIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getKernel_initializer() <em>Kernel initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKernel_initializer()
+ * @generated
+ * @ordered
+ */
+ protected String kernel_initializer = KERNEL_INITIALIZER_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getKernel_constraint() <em>Kernel constraint</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKernel_constraint()
+ * @generated
+ * @ordered
+ */
+ protected constraints kernel_constraint;
+
+ /**
+ * The default value of the '{@link #getKernel_regularizer() <em>Kernel regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKernel_regularizer()
+ * @generated
+ * @ordered
+ */
+ protected static final String KERNEL_REGULARIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getKernel_regularizer() <em>Kernel regularizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKernel_regularizer()
+ * @generated
+ * @ordered
+ */
+ protected String kernel_regularizer = KERNEL_REGULARIZER_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected basicImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.BASIC;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getKernel_initializer() {
+ return kernel_initializer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setKernel_initializer(String newKernel_initializer) {
+ String oldKernel_initializer = kernel_initializer;
+ kernel_initializer = newKernel_initializer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.BASIC__KERNEL_INITIALIZER, oldKernel_initializer, kernel_initializer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public constraints getKernel_constraint() {
+ if (kernel_constraint != null && kernel_constraint.eIsProxy()) {
+ InternalEObject oldKernel_constraint = (InternalEObject)kernel_constraint;
+ kernel_constraint = (constraints)eResolveProxy(oldKernel_constraint);
+ if (kernel_constraint != oldKernel_constraint) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Convolution_layersPackage.BASIC__KERNEL_CONSTRAINT, oldKernel_constraint, kernel_constraint));
+ }
+ }
+ return kernel_constraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public constraints basicGetKernel_constraint() {
+ return kernel_constraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setKernel_constraint(constraints newKernel_constraint) {
+ constraints oldKernel_constraint = kernel_constraint;
+ kernel_constraint = newKernel_constraint;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.BASIC__KERNEL_CONSTRAINT, oldKernel_constraint, kernel_constraint));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getKernel_regularizer() {
+ return kernel_regularizer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setKernel_regularizer(String newKernel_regularizer) {
+ String oldKernel_regularizer = kernel_regularizer;
+ kernel_regularizer = newKernel_regularizer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Convolution_layersPackage.BASIC__KERNEL_REGULARIZER, oldKernel_regularizer, kernel_regularizer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Convolution_layersPackage.BASIC__KERNEL_INITIALIZER:
+ return getKernel_initializer();
+ case Convolution_layersPackage.BASIC__KERNEL_CONSTRAINT:
+ if (resolve) return getKernel_constraint();
+ return basicGetKernel_constraint();
+ case Convolution_layersPackage.BASIC__KERNEL_REGULARIZER:
+ return getKernel_regularizer();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Convolution_layersPackage.BASIC__KERNEL_INITIALIZER:
+ setKernel_initializer((String)newValue);
+ return;
+ case Convolution_layersPackage.BASIC__KERNEL_CONSTRAINT:
+ setKernel_constraint((constraints)newValue);
+ return;
+ case Convolution_layersPackage.BASIC__KERNEL_REGULARIZER:
+ setKernel_regularizer((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.BASIC__KERNEL_INITIALIZER:
+ setKernel_initializer(KERNEL_INITIALIZER_EDEFAULT);
+ return;
+ case Convolution_layersPackage.BASIC__KERNEL_CONSTRAINT:
+ setKernel_constraint((constraints)null);
+ return;
+ case Convolution_layersPackage.BASIC__KERNEL_REGULARIZER:
+ setKernel_regularizer(KERNEL_REGULARIZER_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.BASIC__KERNEL_INITIALIZER:
+ return KERNEL_INITIALIZER_EDEFAULT == null ? kernel_initializer != null : !KERNEL_INITIALIZER_EDEFAULT.equals(kernel_initializer);
+ case Convolution_layersPackage.BASIC__KERNEL_CONSTRAINT:
+ return kernel_constraint != null;
+ case Convolution_layersPackage.BASIC__KERNEL_REGULARIZER:
+ return KERNEL_REGULARIZER_EDEFAULT == null ? kernel_regularizer != null : !KERNEL_REGULARIZER_EDEFAULT.equals(kernel_regularizer);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (kernel_initializer: "); //$NON-NLS-1$
+ result.append(kernel_initializer);
+ result.append(", kernel_regularizer: "); //$NON-NLS-1$
+ result.append(kernel_regularizer);
+ result.append(')');
+ return result.toString();
+ }
+
+} //basicImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/transposeImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/transposeImpl.java
new file mode 100644
index 0000000..7e1170b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/impl/transposeImpl.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.transpose;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>transpose</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.transposeImpl#getOutput_padding <em>Output padding</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class transposeImpl extends basicImpl implements transpose {
+ /**
+ * The cached value of the '{@link #getOutput_padding() <em>Output padding</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutput_padding()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> output_padding;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected transposeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Convolution_layersPackage.Literals.TRANSPOSE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getOutput_padding() {
+ if (output_padding == null) {
+ output_padding = new EDataTypeUniqueEList<Integer>(Integer.class, this, Convolution_layersPackage.TRANSPOSE__OUTPUT_PADDING);
+ }
+ return output_padding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Convolution_layersPackage.TRANSPOSE__OUTPUT_PADDING:
+ return getOutput_padding();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Convolution_layersPackage.TRANSPOSE__OUTPUT_PADDING:
+ getOutput_padding().clear();
+ getOutput_padding().addAll((Collection<? extends Integer>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.TRANSPOSE__OUTPUT_PADDING:
+ getOutput_padding().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Convolution_layersPackage.TRANSPOSE__OUTPUT_PADDING:
+ return output_padding != null && !output_padding.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (output_padding: "); //$NON-NLS-1$
+ result.append(output_padding);
+ result.append(')');
+ return result.toString();
+ }
+
+} //transposeImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/transpose.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/transpose.java
new file mode 100644
index 0000000..fd6dcf0
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/transpose.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>transpose</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.transpose#getOutput_padding <em>Output padding</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#gettranspose()
+ * @model abstract="true"
+ * @generated
+ */
+public interface transpose extends basic {
+ /**
+ * Returns the value of the '<em><b>Output padding</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output padding</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output padding</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage#gettranspose_Output_padding()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getOutput_padding();
+
+} // transpose
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/util/Convolution_layersAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/util/Convolution_layersAdapterFactory.java
new file mode 100644
index 0000000..5f30a4e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/util/Convolution_layersAdapterFactory.java
@@ -0,0 +1,436 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.*;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage
+ * @generated
+ */
+public class Convolution_layersAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Convolution_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Convolution_layersAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Convolution_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Convolution_layersSwitch<Adapter> modelSwitch =
+ new Convolution_layersSwitch<Adapter>() {
+ @Override
+ public Adapter caseConvolution(Convolution object) {
+ return createConvolutionAdapter();
+ }
+ @Override
+ public Adapter caseConvolution_layers(Convolution_layers object) {
+ return createConvolution_layersAdapter();
+ }
+ @Override
+ public Adapter caseUnfold(Unfold object) {
+ return createUnfoldAdapter();
+ }
+ @Override
+ public Adapter caseFold(Fold object) {
+ return createFoldAdapter();
+ }
+ @Override
+ public Adapter caseConv2d(Conv2d object) {
+ return createConv2dAdapter();
+ }
+ @Override
+ public Adapter casebasic(basic object) {
+ return createbasicAdapter();
+ }
+ @Override
+ public Adapter caseLayerWithFilter(LayerWithFilter object) {
+ return createLayerWithFilterAdapter();
+ }
+ @Override
+ public Adapter caseConv3d(Conv3d object) {
+ return createConv3dAdapter();
+ }
+ @Override
+ public Adapter caseConvTranspose1d(ConvTranspose1d object) {
+ return createConvTranspose1dAdapter();
+ }
+ @Override
+ public Adapter caseConvTranspose2d(ConvTranspose2d object) {
+ return createConvTranspose2dAdapter();
+ }
+ @Override
+ public Adapter casetranspose(transpose object) {
+ return createtransposeAdapter();
+ }
+ @Override
+ public Adapter caseConvTranspose3d(ConvTranspose3d object) {
+ return createConvTranspose3dAdapter();
+ }
+ @Override
+ public Adapter caseConv1d(Conv1d object) {
+ return createConv1dAdapter();
+ }
+ @Override
+ public Adapter caseSeparable(Separable object) {
+ return createSeparableAdapter();
+ }
+ @Override
+ public Adapter caseSeparableConv2D(SeparableConv2D object) {
+ return createSeparableConv2DAdapter();
+ }
+ @Override
+ public Adapter caseSeparableConv1D(SeparableConv1D object) {
+ return createSeparableConv1DAdapter();
+ }
+ @Override
+ public Adapter caseDepthwiseConv2D(DepthwiseConv2D object) {
+ return createDepthwiseConv2DAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution <em>Convolution</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution
+ * @generated
+ */
+ public Adapter createConvolutionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers <em>Convolution layers</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layers
+ * @generated
+ */
+ public Adapter createConvolution_layersAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Unfold <em>Unfold</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Unfold
+ * @generated
+ */
+ public Adapter createUnfoldAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Fold <em>Fold</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Fold
+ * @generated
+ */
+ public Adapter createFoldAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv2d <em>Conv2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv2d
+ * @generated
+ */
+ public Adapter createConv2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic <em>basic</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.basic
+ * @generated
+ */
+ public Adapter createbasicAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.LayerWithFilter <em>Layer With Filter</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.LayerWithFilter
+ * @generated
+ */
+ public Adapter createLayerWithFilterAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv3d <em>Conv3d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv3d
+ * @generated
+ */
+ public Adapter createConv3dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose1d <em>Conv Transpose1d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose1d
+ * @generated
+ */
+ public Adapter createConvTranspose1dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose2d <em>Conv Transpose2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose2d
+ * @generated
+ */
+ public Adapter createConvTranspose2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.transpose <em>transpose</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.transpose
+ * @generated
+ */
+ public Adapter createtransposeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose3d <em>Conv Transpose3d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.ConvTranspose3d
+ * @generated
+ */
+ public Adapter createConvTranspose3dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv1d <em>Conv1d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Conv1d
+ * @generated
+ */
+ public Adapter createConv1dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable <em>Separable</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Separable
+ * @generated
+ */
+ public Adapter createSeparableAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.SeparableConv2D <em>Separable Conv2 D</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.SeparableConv2D
+ * @generated
+ */
+ public Adapter createSeparableConv2DAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.SeparableConv1D <em>Separable Conv1 D</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.SeparableConv1D
+ * @generated
+ */
+ public Adapter createSeparableConv1DAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D <em>Depthwise Conv2 D</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.DepthwiseConv2D
+ * @generated
+ */
+ public Adapter createDepthwiseConv2DAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Convolution_layersAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/util/Convolution_layersSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/util/Convolution_layersSwitch.java
new file mode 100644
index 0000000..e891157
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Convolution_layers/util/Convolution_layersSwitch.java
@@ -0,0 +1,538 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.*;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage
+ * @generated
+ */
+public class Convolution_layersSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Convolution_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Convolution_layersSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Convolution_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Convolution_layersPackage.CONVOLUTION: {
+ Convolution convolution = (Convolution)theEObject;
+ T result = caseConvolution(convolution);
+ if (result == null) result = caseConvolution_layers(convolution);
+ if (result == null) result = caseModel(convolution);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.CONVOLUTION_LAYERS: {
+ Convolution_layers convolution_layers = (Convolution_layers)theEObject;
+ T result = caseConvolution_layers(convolution_layers);
+ if (result == null) result = caseModel(convolution_layers);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.UNFOLD: {
+ Unfold unfold = (Unfold)theEObject;
+ T result = caseUnfold(unfold);
+ if (result == null) result = caseConvolution_layers(unfold);
+ if (result == null) result = caseModel(unfold);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.FOLD: {
+ Fold fold = (Fold)theEObject;
+ T result = caseFold(fold);
+ if (result == null) result = caseConvolution_layers(fold);
+ if (result == null) result = caseModel(fold);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.CONV2D: {
+ Conv2d conv2d = (Conv2d)theEObject;
+ T result = caseConv2d(conv2d);
+ if (result == null) result = casebasic(conv2d);
+ if (result == null) result = caseLayerWithFilter(conv2d);
+ if (result == null) result = caseConvolution(conv2d);
+ if (result == null) result = caseConvolution_layers(conv2d);
+ if (result == null) result = caseModel(conv2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.BASIC: {
+ basic basic = (basic)theEObject;
+ T result = casebasic(basic);
+ if (result == null) result = caseLayerWithFilter(basic);
+ if (result == null) result = caseConvolution(basic);
+ if (result == null) result = caseConvolution_layers(basic);
+ if (result == null) result = caseModel(basic);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.LAYER_WITH_FILTER: {
+ LayerWithFilter layerWithFilter = (LayerWithFilter)theEObject;
+ T result = caseLayerWithFilter(layerWithFilter);
+ if (result == null) result = caseConvolution(layerWithFilter);
+ if (result == null) result = caseConvolution_layers(layerWithFilter);
+ if (result == null) result = caseModel(layerWithFilter);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.CONV3D: {
+ Conv3d conv3d = (Conv3d)theEObject;
+ T result = caseConv3d(conv3d);
+ if (result == null) result = casebasic(conv3d);
+ if (result == null) result = caseLayerWithFilter(conv3d);
+ if (result == null) result = caseConvolution(conv3d);
+ if (result == null) result = caseConvolution_layers(conv3d);
+ if (result == null) result = caseModel(conv3d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.CONV_TRANSPOSE1D: {
+ ConvTranspose1d convTranspose1d = (ConvTranspose1d)theEObject;
+ T result = caseConvTranspose1d(convTranspose1d);
+ if (result == null) result = caseLayerWithFilter(convTranspose1d);
+ if (result == null) result = caseConvolution(convTranspose1d);
+ if (result == null) result = caseConvolution_layers(convTranspose1d);
+ if (result == null) result = caseModel(convTranspose1d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.CONV_TRANSPOSE2D: {
+ ConvTranspose2d convTranspose2d = (ConvTranspose2d)theEObject;
+ T result = caseConvTranspose2d(convTranspose2d);
+ if (result == null) result = casetranspose(convTranspose2d);
+ if (result == null) result = casebasic(convTranspose2d);
+ if (result == null) result = caseLayerWithFilter(convTranspose2d);
+ if (result == null) result = caseConvolution(convTranspose2d);
+ if (result == null) result = caseConvolution_layers(convTranspose2d);
+ if (result == null) result = caseModel(convTranspose2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.TRANSPOSE: {
+ transpose transpose = (transpose)theEObject;
+ T result = casetranspose(transpose);
+ if (result == null) result = casebasic(transpose);
+ if (result == null) result = caseLayerWithFilter(transpose);
+ if (result == null) result = caseConvolution(transpose);
+ if (result == null) result = caseConvolution_layers(transpose);
+ if (result == null) result = caseModel(transpose);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.CONV_TRANSPOSE3D: {
+ ConvTranspose3d convTranspose3d = (ConvTranspose3d)theEObject;
+ T result = caseConvTranspose3d(convTranspose3d);
+ if (result == null) result = casetranspose(convTranspose3d);
+ if (result == null) result = casebasic(convTranspose3d);
+ if (result == null) result = caseLayerWithFilter(convTranspose3d);
+ if (result == null) result = caseConvolution(convTranspose3d);
+ if (result == null) result = caseConvolution_layers(convTranspose3d);
+ if (result == null) result = caseModel(convTranspose3d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.CONV1D: {
+ Conv1d conv1d = (Conv1d)theEObject;
+ T result = caseConv1d(conv1d);
+ if (result == null) result = casebasic(conv1d);
+ if (result == null) result = caseLayerWithFilter(conv1d);
+ if (result == null) result = caseConvolution(conv1d);
+ if (result == null) result = caseConvolution_layers(conv1d);
+ if (result == null) result = caseModel(conv1d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.SEPARABLE: {
+ Separable separable = (Separable)theEObject;
+ T result = caseSeparable(separable);
+ if (result == null) result = caseLayerWithFilter(separable);
+ if (result == null) result = caseConvolution(separable);
+ if (result == null) result = caseConvolution_layers(separable);
+ if (result == null) result = caseModel(separable);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.SEPARABLE_CONV2_D: {
+ SeparableConv2D separableConv2D = (SeparableConv2D)theEObject;
+ T result = caseSeparableConv2D(separableConv2D);
+ if (result == null) result = caseSeparable(separableConv2D);
+ if (result == null) result = caseLayerWithFilter(separableConv2D);
+ if (result == null) result = caseConvolution(separableConv2D);
+ if (result == null) result = caseConvolution_layers(separableConv2D);
+ if (result == null) result = caseModel(separableConv2D);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.SEPARABLE_CONV1_D: {
+ SeparableConv1D separableConv1D = (SeparableConv1D)theEObject;
+ T result = caseSeparableConv1D(separableConv1D);
+ if (result == null) result = caseSeparable(separableConv1D);
+ if (result == null) result = caseLayerWithFilter(separableConv1D);
+ if (result == null) result = caseConvolution(separableConv1D);
+ if (result == null) result = caseConvolution_layers(separableConv1D);
+ if (result == null) result = caseModel(separableConv1D);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Convolution_layersPackage.DEPTHWISE_CONV2_D: {
+ DepthwiseConv2D depthwiseConv2D = (DepthwiseConv2D)theEObject;
+ T result = caseDepthwiseConv2D(depthwiseConv2D);
+ if (result == null) result = caseConvolution(depthwiseConv2D);
+ if (result == null) result = caseConvolution_layers(depthwiseConv2D);
+ if (result == null) result = caseModel(depthwiseConv2D);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Convolution</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Convolution</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConvolution(Convolution object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Convolution layers</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Convolution layers</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConvolution_layers(Convolution_layers object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Unfold</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Unfold</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUnfold(Unfold object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Fold</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Fold</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFold(Fold object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Conv2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Conv2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConv2d(Conv2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>basic</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>basic</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casebasic(basic object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Layer With Filter</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Layer With Filter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLayerWithFilter(LayerWithFilter object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Conv3d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Conv3d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConv3d(Conv3d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Conv Transpose1d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Conv Transpose1d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConvTranspose1d(ConvTranspose1d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Conv Transpose2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Conv Transpose2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConvTranspose2d(ConvTranspose2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>transpose</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>transpose</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casetranspose(transpose object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Conv Transpose3d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Conv Transpose3d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConvTranspose3d(ConvTranspose3d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Conv1d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Conv1d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConv1d(Conv1d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Separable</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Separable</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSeparable(Separable object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Separable Conv2 D</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Separable Conv2 D</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSeparableConv2D(SeparableConv2D object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Separable Conv1 D</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Separable Conv1 D</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSeparableConv1D(SeparableConv1D object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Depthwise Conv2 D</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Depthwise Conv2 D</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDepthwiseConv2D(DepthwiseConv2D object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Convolution_layersSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DataParallel.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DataParallel.java
new file mode 100644
index 0000000..4c41b3f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DataParallel.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Parallel</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage#getDataParallel()
+ * @model
+ * @generated
+ */
+public interface DataParallel extends DataParallel_layers {
+} // DataParallel
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DataParallel_layers.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DataParallel_layers.java
new file mode 100644
index 0000000..a4fea2e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DataParallel_layers.java
@@ -0,0 +1,94 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Data Parallel layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers#getModule <em>Module</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers#getDevice_ids <em>Device ids</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers#getOutput_device <em>Output device</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage#getDataParallel_layers()
+ * @model abstract="true"
+ * @generated
+ */
+public interface DataParallel_layers extends Model {
+ /**
+ * Returns the value of the '<em><b>Module</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Module</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Module</em>' reference.
+ * @see #setModule(Model)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage#getDataParallel_layers_Module()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Model getModule();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers#getModule <em>Module</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Module</em>' reference.
+ * @see #getModule()
+ * @generated
+ */
+ void setModule(Model value);
+
+ /**
+ * Returns the value of the '<em><b>Device ids</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Device ids</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Device ids</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage#getDataParallel_layers_Device_ids()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getDevice_ids();
+
+ /**
+ * Returns the value of the '<em><b>Output device</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output device</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output device</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage#getDataParallel_layers_Output_device()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getOutput_device();
+
+} // DataParallel_layers
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DataParallel_layersFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DataParallel_layersFactory.java
new file mode 100644
index 0000000..25da7a5
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DataParallel_layersFactory.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage
+ * @generated
+ */
+public interface DataParallel_layersFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ DataParallel_layersFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Distributed Data Parallel</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Distributed Data Parallel</em>'.
+ * @generated
+ */
+ DistributedDataParallel createDistributedDataParallel();
+
+ /**
+ * Returns a new object of class '<em>Data Parallel</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Data Parallel</em>'.
+ * @generated
+ */
+ DataParallel createDataParallel();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ DataParallel_layersPackage getDataParallel_layersPackage();
+
+} //DataParallel_layersFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DataParallel_layersPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DataParallel_layersPackage.java
new file mode 100644
index 0000000..f4e558b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DataParallel_layersPackage.java
@@ -0,0 +1,707 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface DataParallel_layersPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "DataParallel_layers"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/dataparallel/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.DataParallel_layers"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ DataParallel_layersPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersImpl <em>Data Parallel layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl#getDataParallel_layers()
+ * @generated
+ */
+ int DATA_PARALLEL_LAYERS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL_LAYERS__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL_LAYERS__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL_LAYERS__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL_LAYERS__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL_LAYERS__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL_LAYERS__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL_LAYERS__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL_LAYERS__MODULE = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Device ids</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL_LAYERS__DEVICE_IDS = ModulePackage.MODEL_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Output device</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL_LAYERS__OUTPUT_DEVICE = ModulePackage.MODEL_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Data Parallel layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL_LAYERS_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the '<em>Data Parallel layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL_LAYERS_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DistributedDataParallelImpl <em>Distributed Data Parallel</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DistributedDataParallelImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl#getDistributedDataParallel()
+ * @generated
+ */
+ int DISTRIBUTED_DATA_PARALLEL = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__BASE_CLASS = DATA_PARALLEL_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__NAME = DATA_PARALLEL_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__DATA = DATA_PARALLEL_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__REQUIRES_GRAD = DATA_PARALLEL_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__SUB_MODULE = DATA_PARALLEL_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__OPTIMIZER = DATA_PARALLEL_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__LOSS = DATA_PARALLEL_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__MODULE = DATA_PARALLEL_LAYERS__MODULE;
+
+ /**
+ * The feature id for the '<em><b>Device ids</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__DEVICE_IDS = DATA_PARALLEL_LAYERS__DEVICE_IDS;
+
+ /**
+ * The feature id for the '<em><b>Output device</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__OUTPUT_DEVICE = DATA_PARALLEL_LAYERS__OUTPUT_DEVICE;
+
+ /**
+ * The feature id for the '<em><b>Broadcast buffers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__BROADCAST_BUFFERS = DATA_PARALLEL_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Process group</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__PROCESS_GROUP = DATA_PARALLEL_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Bucket cap mb</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__BUCKET_CAP_MB = DATA_PARALLEL_LAYERS_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Find unsused parameters</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__FIND_UNSUSED_PARAMETERS = DATA_PARALLEL_LAYERS_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Check reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL__CHECK_REDUCTION = DATA_PARALLEL_LAYERS_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Distributed Data Parallel</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL_FEATURE_COUNT = DATA_PARALLEL_LAYERS_FEATURE_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Distributed Data Parallel</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTRIBUTED_DATA_PARALLEL_OPERATION_COUNT = DATA_PARALLEL_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallelImpl <em>Data Parallel</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallelImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl#getDataParallel()
+ * @generated
+ */
+ int DATA_PARALLEL = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL__BASE_CLASS = DATA_PARALLEL_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL__NAME = DATA_PARALLEL_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL__DATA = DATA_PARALLEL_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL__REQUIRES_GRAD = DATA_PARALLEL_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL__SUB_MODULE = DATA_PARALLEL_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL__OPTIMIZER = DATA_PARALLEL_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL__LOSS = DATA_PARALLEL_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL__MODULE = DATA_PARALLEL_LAYERS__MODULE;
+
+ /**
+ * The feature id for the '<em><b>Device ids</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL__DEVICE_IDS = DATA_PARALLEL_LAYERS__DEVICE_IDS;
+
+ /**
+ * The feature id for the '<em><b>Output device</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL__OUTPUT_DEVICE = DATA_PARALLEL_LAYERS__OUTPUT_DEVICE;
+
+ /**
+ * The number of structural features of the '<em>Data Parallel</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL_FEATURE_COUNT = DATA_PARALLEL_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Data Parallel</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DATA_PARALLEL_OPERATION_COUNT = DATA_PARALLEL_LAYERS_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers <em>Data Parallel layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Data Parallel layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers
+ * @generated
+ */
+ EClass getDataParallel_layers();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers#getModule <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Module</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers#getModule()
+ * @see #getDataParallel_layers()
+ * @generated
+ */
+ EReference getDataParallel_layers_Module();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers#getDevice_ids <em>Device ids</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Device ids</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers#getDevice_ids()
+ * @see #getDataParallel_layers()
+ * @generated
+ */
+ EAttribute getDataParallel_layers_Device_ids();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers#getOutput_device <em>Output device</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Output device</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers#getOutput_device()
+ * @see #getDataParallel_layers()
+ * @generated
+ */
+ EAttribute getDataParallel_layers_Output_device();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel <em>Distributed Data Parallel</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Distributed Data Parallel</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel
+ * @generated
+ */
+ EClass getDistributedDataParallel();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#isBroadcast_buffers <em>Broadcast buffers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Broadcast buffers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#isBroadcast_buffers()
+ * @see #getDistributedDataParallel()
+ * @generated
+ */
+ EAttribute getDistributedDataParallel_Broadcast_buffers();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#getProcess_group <em>Process group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Process group</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#getProcess_group()
+ * @see #getDistributedDataParallel()
+ * @generated
+ */
+ EAttribute getDistributedDataParallel_Process_group();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#getBucket_cap_mb <em>Bucket cap mb</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bucket cap mb</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#getBucket_cap_mb()
+ * @see #getDistributedDataParallel()
+ * @generated
+ */
+ EAttribute getDistributedDataParallel_Bucket_cap_mb();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#isFind_unsused_parameters <em>Find unsused parameters</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Find unsused parameters</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#isFind_unsused_parameters()
+ * @see #getDistributedDataParallel()
+ * @generated
+ */
+ EAttribute getDistributedDataParallel_Find_unsused_parameters();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#isCheck_reduction <em>Check reduction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Check reduction</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#isCheck_reduction()
+ * @see #getDistributedDataParallel()
+ * @generated
+ */
+ EAttribute getDistributedDataParallel_Check_reduction();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel <em>Data Parallel</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Data Parallel</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel
+ * @generated
+ */
+ EClass getDataParallel();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ DataParallel_layersFactory getDataParallel_layersFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersImpl <em>Data Parallel layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl#getDataParallel_layers()
+ * @generated
+ */
+ EClass DATA_PARALLEL_LAYERS = eINSTANCE.getDataParallel_layers();
+
+ /**
+ * The meta object literal for the '<em><b>Module</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference DATA_PARALLEL_LAYERS__MODULE = eINSTANCE.getDataParallel_layers_Module();
+
+ /**
+ * The meta object literal for the '<em><b>Device ids</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DATA_PARALLEL_LAYERS__DEVICE_IDS = eINSTANCE.getDataParallel_layers_Device_ids();
+
+ /**
+ * The meta object literal for the '<em><b>Output device</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DATA_PARALLEL_LAYERS__OUTPUT_DEVICE = eINSTANCE.getDataParallel_layers_Output_device();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DistributedDataParallelImpl <em>Distributed Data Parallel</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DistributedDataParallelImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl#getDistributedDataParallel()
+ * @generated
+ */
+ EClass DISTRIBUTED_DATA_PARALLEL = eINSTANCE.getDistributedDataParallel();
+
+ /**
+ * The meta object literal for the '<em><b>Broadcast buffers</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DISTRIBUTED_DATA_PARALLEL__BROADCAST_BUFFERS = eINSTANCE.getDistributedDataParallel_Broadcast_buffers();
+
+ /**
+ * The meta object literal for the '<em><b>Process group</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DISTRIBUTED_DATA_PARALLEL__PROCESS_GROUP = eINSTANCE.getDistributedDataParallel_Process_group();
+
+ /**
+ * The meta object literal for the '<em><b>Bucket cap mb</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DISTRIBUTED_DATA_PARALLEL__BUCKET_CAP_MB = eINSTANCE.getDistributedDataParallel_Bucket_cap_mb();
+
+ /**
+ * The meta object literal for the '<em><b>Find unsused parameters</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DISTRIBUTED_DATA_PARALLEL__FIND_UNSUSED_PARAMETERS = eINSTANCE.getDistributedDataParallel_Find_unsused_parameters();
+
+ /**
+ * The meta object literal for the '<em><b>Check reduction</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DISTRIBUTED_DATA_PARALLEL__CHECK_REDUCTION = eINSTANCE.getDistributedDataParallel_Check_reduction();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallelImpl <em>Data Parallel</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallelImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl#getDataParallel()
+ * @generated
+ */
+ EClass DATA_PARALLEL = eINSTANCE.getDataParallel();
+
+ }
+
+} //DataParallel_layersPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DistributedDataParallel.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DistributedDataParallel.java
new file mode 100644
index 0000000..0587fce
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/DistributedDataParallel.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Distributed Data Parallel</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#isBroadcast_buffers <em>Broadcast buffers</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#getProcess_group <em>Process group</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#getBucket_cap_mb <em>Bucket cap mb</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#isFind_unsused_parameters <em>Find unsused parameters</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#isCheck_reduction <em>Check reduction</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage#getDistributedDataParallel()
+ * @model
+ * @generated
+ */
+public interface DistributedDataParallel extends DataParallel_layers {
+ /**
+ * Returns the value of the '<em><b>Broadcast buffers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Broadcast buffers</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Broadcast buffers</em>' attribute.
+ * @see #setBroadcast_buffers(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage#getDistributedDataParallel_Broadcast_buffers()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isBroadcast_buffers();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#isBroadcast_buffers <em>Broadcast buffers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Broadcast buffers</em>' attribute.
+ * @see #isBroadcast_buffers()
+ * @generated
+ */
+ void setBroadcast_buffers(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Process group</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Process group</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Process group</em>' attribute.
+ * @see #setProcess_group(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage#getDistributedDataParallel_Process_group()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getProcess_group();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#getProcess_group <em>Process group</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Process group</em>' attribute.
+ * @see #getProcess_group()
+ * @generated
+ */
+ void setProcess_group(int value);
+
+ /**
+ * Returns the value of the '<em><b>Bucket cap mb</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bucket cap mb</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bucket cap mb</em>' attribute.
+ * @see #setBucket_cap_mb(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage#getDistributedDataParallel_Bucket_cap_mb()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getBucket_cap_mb();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#getBucket_cap_mb <em>Bucket cap mb</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bucket cap mb</em>' attribute.
+ * @see #getBucket_cap_mb()
+ * @generated
+ */
+ void setBucket_cap_mb(int value);
+
+ /**
+ * Returns the value of the '<em><b>Find unsused parameters</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Find unsused parameters</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Find unsused parameters</em>' attribute.
+ * @see #setFind_unsused_parameters(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage#getDistributedDataParallel_Find_unsused_parameters()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isFind_unsused_parameters();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#isFind_unsused_parameters <em>Find unsused parameters</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Find unsused parameters</em>' attribute.
+ * @see #isFind_unsused_parameters()
+ * @generated
+ */
+ void setFind_unsused_parameters(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Check reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Check reduction</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Check reduction</em>' attribute.
+ * @see #setCheck_reduction(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage#getDistributedDataParallel_Check_reduction()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isCheck_reduction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel#isCheck_reduction <em>Check reduction</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Check reduction</em>' attribute.
+ * @see #isCheck_reduction()
+ * @generated
+ */
+ void setCheck_reduction(boolean value);
+
+} // DistributedDataParallel
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DataParallelImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DataParallelImpl.java
new file mode 100644
index 0000000..8921c53
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DataParallelImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel;
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Parallel</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class DataParallelImpl extends DataParallel_layersImpl implements DataParallel {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DataParallelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return DataParallel_layersPackage.Literals.DATA_PARALLEL;
+ }
+
+} //DataParallelImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DataParallel_layersFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DataParallel_layersFactoryImpl.java
new file mode 100644
index 0000000..2a23d3c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DataParallel_layersFactoryImpl.java
@@ -0,0 +1,118 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DataParallel_layersFactoryImpl extends EFactoryImpl implements DataParallel_layersFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DataParallel_layersFactory init() {
+ try {
+ DataParallel_layersFactory theDataParallel_layersFactory = (DataParallel_layersFactory)EPackage.Registry.INSTANCE.getEFactory(DataParallel_layersPackage.eNS_URI);
+ if (theDataParallel_layersFactory != null) {
+ return theDataParallel_layersFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new DataParallel_layersFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataParallel_layersFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL: return createDistributedDataParallel();
+ case DataParallel_layersPackage.DATA_PARALLEL: return createDataParallel();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DistributedDataParallel createDistributedDataParallel() {
+ DistributedDataParallelImpl distributedDataParallel = new DistributedDataParallelImpl();
+ return distributedDataParallel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DataParallel createDataParallel() {
+ DataParallelImpl dataParallel = new DataParallelImpl();
+ return dataParallel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DataParallel_layersPackage getDataParallel_layersPackage() {
+ return (DataParallel_layersPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static DataParallel_layersPackage getPackage() {
+ return DataParallel_layersPackage.eINSTANCE;
+ }
+
+} //DataParallel_layersFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DataParallel_layersImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DataParallel_layersImpl.java
new file mode 100644
index 0000000..bd9678d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DataParallel_layersImpl.java
@@ -0,0 +1,263 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Parallel layers</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersImpl#getModule <em>Module</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersImpl#getDevice_ids <em>Device ids</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersImpl#getOutput_device <em>Output device</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class DataParallel_layersImpl extends ModelImpl implements DataParallel_layers {
+ /**
+ * The cached value of the '{@link #getModule() <em>Module</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModule()
+ * @generated
+ * @ordered
+ */
+ protected Model module;
+
+ /**
+ * The cached value of the '{@link #getDevice_ids() <em>Device ids</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDevice_ids()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> device_ids;
+
+ /**
+ * The cached value of the '{@link #getOutput_device() <em>Output device</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutput_device()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> output_device;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DataParallel_layersImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return DataParallel_layersPackage.Literals.DATA_PARALLEL_LAYERS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Model getModule() {
+ if (module != null && module.eIsProxy()) {
+ InternalEObject oldModule = (InternalEObject)module;
+ module = (Model)eResolveProxy(oldModule);
+ if (module != oldModule) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, DataParallel_layersPackage.DATA_PARALLEL_LAYERS__MODULE, oldModule, module));
+ }
+ }
+ return module;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Model basicGetModule() {
+ return module;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setModule(Model newModule) {
+ Model oldModule = module;
+ module = newModule;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DataParallel_layersPackage.DATA_PARALLEL_LAYERS__MODULE, oldModule, module));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getDevice_ids() {
+ if (device_ids == null) {
+ device_ids = new EDataTypeUniqueEList<Integer>(Integer.class, this, DataParallel_layersPackage.DATA_PARALLEL_LAYERS__DEVICE_IDS);
+ }
+ return device_ids;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getOutput_device() {
+ if (output_device == null) {
+ output_device = new EDataTypeUniqueEList<Integer>(Integer.class, this, DataParallel_layersPackage.DATA_PARALLEL_LAYERS__OUTPUT_DEVICE);
+ }
+ return output_device;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DataParallel_layersPackage.DATA_PARALLEL_LAYERS__MODULE:
+ if (resolve) return getModule();
+ return basicGetModule();
+ case DataParallel_layersPackage.DATA_PARALLEL_LAYERS__DEVICE_IDS:
+ return getDevice_ids();
+ case DataParallel_layersPackage.DATA_PARALLEL_LAYERS__OUTPUT_DEVICE:
+ return getOutput_device();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DataParallel_layersPackage.DATA_PARALLEL_LAYERS__MODULE:
+ setModule((Model)newValue);
+ return;
+ case DataParallel_layersPackage.DATA_PARALLEL_LAYERS__DEVICE_IDS:
+ getDevice_ids().clear();
+ getDevice_ids().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case DataParallel_layersPackage.DATA_PARALLEL_LAYERS__OUTPUT_DEVICE:
+ getOutput_device().clear();
+ getOutput_device().addAll((Collection<? extends Integer>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DataParallel_layersPackage.DATA_PARALLEL_LAYERS__MODULE:
+ setModule((Model)null);
+ return;
+ case DataParallel_layersPackage.DATA_PARALLEL_LAYERS__DEVICE_IDS:
+ getDevice_ids().clear();
+ return;
+ case DataParallel_layersPackage.DATA_PARALLEL_LAYERS__OUTPUT_DEVICE:
+ getOutput_device().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DataParallel_layersPackage.DATA_PARALLEL_LAYERS__MODULE:
+ return module != null;
+ case DataParallel_layersPackage.DATA_PARALLEL_LAYERS__DEVICE_IDS:
+ return device_ids != null && !device_ids.isEmpty();
+ case DataParallel_layersPackage.DATA_PARALLEL_LAYERS__OUTPUT_DEVICE:
+ return output_device != null && !output_device.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (device_ids: "); //$NON-NLS-1$
+ result.append(device_ids);
+ result.append(", output_device: "); //$NON-NLS-1$
+ result.append(output_device);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DataParallel_layersImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DataParallel_layersPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DataParallel_layersPackageImpl.java
new file mode 100644
index 0000000..1c7be47
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DataParallel_layersPackageImpl.java
@@ -0,0 +1,502 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel;
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DataParallel_layersPackageImpl extends EPackageImpl implements DataParallel_layersPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dataParallel_layersEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass distributedDataParallelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dataParallelEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private DataParallel_layersPackageImpl() {
+ super(eNS_URI, DataParallel_layersFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link DataParallel_layersPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static DataParallel_layersPackage init() {
+ if (isInited) return (DataParallel_layersPackage)EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredDataParallel_layersPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = registeredDataParallel_layersPackage instanceof DataParallel_layersPackageImpl ? (DataParallel_layersPackageImpl)registeredDataParallel_layersPackage : new DataParallel_layersPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theDataParallel_layersPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theDataParallel_layersPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theDataParallel_layersPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(DataParallel_layersPackage.eNS_URI, theDataParallel_layersPackage);
+ return theDataParallel_layersPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDataParallel_layers() {
+ return dataParallel_layersEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getDataParallel_layers_Module() {
+ return (EReference)dataParallel_layersEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDataParallel_layers_Device_ids() {
+ return (EAttribute)dataParallel_layersEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDataParallel_layers_Output_device() {
+ return (EAttribute)dataParallel_layersEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDistributedDataParallel() {
+ return distributedDataParallelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDistributedDataParallel_Broadcast_buffers() {
+ return (EAttribute)distributedDataParallelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDistributedDataParallel_Process_group() {
+ return (EAttribute)distributedDataParallelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDistributedDataParallel_Bucket_cap_mb() {
+ return (EAttribute)distributedDataParallelEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDistributedDataParallel_Find_unsused_parameters() {
+ return (EAttribute)distributedDataParallelEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDistributedDataParallel_Check_reduction() {
+ return (EAttribute)distributedDataParallelEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDataParallel() {
+ return dataParallelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DataParallel_layersFactory getDataParallel_layersFactory() {
+ return (DataParallel_layersFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ dataParallel_layersEClass = createEClass(DATA_PARALLEL_LAYERS);
+ createEReference(dataParallel_layersEClass, DATA_PARALLEL_LAYERS__MODULE);
+ createEAttribute(dataParallel_layersEClass, DATA_PARALLEL_LAYERS__DEVICE_IDS);
+ createEAttribute(dataParallel_layersEClass, DATA_PARALLEL_LAYERS__OUTPUT_DEVICE);
+
+ distributedDataParallelEClass = createEClass(DISTRIBUTED_DATA_PARALLEL);
+ createEAttribute(distributedDataParallelEClass, DISTRIBUTED_DATA_PARALLEL__BROADCAST_BUFFERS);
+ createEAttribute(distributedDataParallelEClass, DISTRIBUTED_DATA_PARALLEL__PROCESS_GROUP);
+ createEAttribute(distributedDataParallelEClass, DISTRIBUTED_DATA_PARALLEL__BUCKET_CAP_MB);
+ createEAttribute(distributedDataParallelEClass, DISTRIBUTED_DATA_PARALLEL__FIND_UNSUSED_PARAMETERS);
+ createEAttribute(distributedDataParallelEClass, DISTRIBUTED_DATA_PARALLEL__CHECK_REDUCTION);
+
+ dataParallelEClass = createEClass(DATA_PARALLEL);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ dataParallel_layersEClass.getESuperTypes().add(theModulePackage.getModel());
+ distributedDataParallelEClass.getESuperTypes().add(this.getDataParallel_layers());
+ dataParallelEClass.getESuperTypes().add(this.getDataParallel_layers());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(dataParallel_layersEClass, DataParallel_layers.class, "DataParallel_layers", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getDataParallel_layers_Module(), theModulePackage.getModel(), null, "module", null, 1, 1, DataParallel_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDataParallel_layers_Device_ids(), theTypesPackage.getInteger(), "device_ids", null, 0, -1, DataParallel_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDataParallel_layers_Output_device(), theTypesPackage.getInteger(), "output_device", null, 0, -1, DataParallel_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(distributedDataParallelEClass, DistributedDataParallel.class, "DistributedDataParallel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDistributedDataParallel_Broadcast_buffers(), theTypesPackage.getBoolean(), "broadcast_buffers", null, 0, 1, DistributedDataParallel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDistributedDataParallel_Process_group(), theTypesPackage.getInteger(), "process_group", null, 0, 1, DistributedDataParallel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDistributedDataParallel_Bucket_cap_mb(), theTypesPackage.getInteger(), "bucket_cap_mb", null, 0, 1, DistributedDataParallel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDistributedDataParallel_Find_unsused_parameters(), theTypesPackage.getBoolean(), "find_unsused_parameters", null, 0, 1, DistributedDataParallel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDistributedDataParallel_Check_reduction(), theTypesPackage.getBoolean(), "check_reduction", null, 0, 1, DistributedDataParallel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(dataParallelEClass, DataParallel.class, "DataParallel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ }
+
+} //DataParallel_layersPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DistributedDataParallelImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DistributedDataParallelImpl.java
new file mode 100644
index 0000000..3a74902
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/impl/DistributedDataParallelImpl.java
@@ -0,0 +1,397 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Distributed Data Parallel</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DistributedDataParallelImpl#isBroadcast_buffers <em>Broadcast buffers</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DistributedDataParallelImpl#getProcess_group <em>Process group</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DistributedDataParallelImpl#getBucket_cap_mb <em>Bucket cap mb</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DistributedDataParallelImpl#isFind_unsused_parameters <em>Find unsused parameters</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DistributedDataParallelImpl#isCheck_reduction <em>Check reduction</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DistributedDataParallelImpl extends DataParallel_layersImpl implements DistributedDataParallel {
+ /**
+ * The default value of the '{@link #isBroadcast_buffers() <em>Broadcast buffers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBroadcast_buffers()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean BROADCAST_BUFFERS_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isBroadcast_buffers() <em>Broadcast buffers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBroadcast_buffers()
+ * @generated
+ * @ordered
+ */
+ protected boolean broadcast_buffers = BROADCAST_BUFFERS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getProcess_group() <em>Process group</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProcess_group()
+ * @generated
+ * @ordered
+ */
+ protected static final int PROCESS_GROUP_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getProcess_group() <em>Process group</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProcess_group()
+ * @generated
+ * @ordered
+ */
+ protected int process_group = PROCESS_GROUP_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getBucket_cap_mb() <em>Bucket cap mb</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBucket_cap_mb()
+ * @generated
+ * @ordered
+ */
+ protected static final int BUCKET_CAP_MB_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getBucket_cap_mb() <em>Bucket cap mb</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBucket_cap_mb()
+ * @generated
+ * @ordered
+ */
+ protected int bucket_cap_mb = BUCKET_CAP_MB_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isFind_unsused_parameters() <em>Find unsused parameters</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFind_unsused_parameters()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FIND_UNSUSED_PARAMETERS_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFind_unsused_parameters() <em>Find unsused parameters</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFind_unsused_parameters()
+ * @generated
+ * @ordered
+ */
+ protected boolean find_unsused_parameters = FIND_UNSUSED_PARAMETERS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isCheck_reduction() <em>Check reduction</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCheck_reduction()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean CHECK_REDUCTION_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isCheck_reduction() <em>Check reduction</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCheck_reduction()
+ * @generated
+ * @ordered
+ */
+ protected boolean check_reduction = CHECK_REDUCTION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DistributedDataParallelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return DataParallel_layersPackage.Literals.DISTRIBUTED_DATA_PARALLEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isBroadcast_buffers() {
+ return broadcast_buffers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBroadcast_buffers(boolean newBroadcast_buffers) {
+ boolean oldBroadcast_buffers = broadcast_buffers;
+ broadcast_buffers = newBroadcast_buffers;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__BROADCAST_BUFFERS, oldBroadcast_buffers, broadcast_buffers));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getProcess_group() {
+ return process_group;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setProcess_group(int newProcess_group) {
+ int oldProcess_group = process_group;
+ process_group = newProcess_group;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__PROCESS_GROUP, oldProcess_group, process_group));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getBucket_cap_mb() {
+ return bucket_cap_mb;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBucket_cap_mb(int newBucket_cap_mb) {
+ int oldBucket_cap_mb = bucket_cap_mb;
+ bucket_cap_mb = newBucket_cap_mb;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__BUCKET_CAP_MB, oldBucket_cap_mb, bucket_cap_mb));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFind_unsused_parameters() {
+ return find_unsused_parameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setFind_unsused_parameters(boolean newFind_unsused_parameters) {
+ boolean oldFind_unsused_parameters = find_unsused_parameters;
+ find_unsused_parameters = newFind_unsused_parameters;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__FIND_UNSUSED_PARAMETERS, oldFind_unsused_parameters, find_unsused_parameters));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isCheck_reduction() {
+ return check_reduction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setCheck_reduction(boolean newCheck_reduction) {
+ boolean oldCheck_reduction = check_reduction;
+ check_reduction = newCheck_reduction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__CHECK_REDUCTION, oldCheck_reduction, check_reduction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__BROADCAST_BUFFERS:
+ return isBroadcast_buffers();
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__PROCESS_GROUP:
+ return getProcess_group();
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__BUCKET_CAP_MB:
+ return getBucket_cap_mb();
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__FIND_UNSUSED_PARAMETERS:
+ return isFind_unsused_parameters();
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__CHECK_REDUCTION:
+ return isCheck_reduction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__BROADCAST_BUFFERS:
+ setBroadcast_buffers((Boolean)newValue);
+ return;
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__PROCESS_GROUP:
+ setProcess_group((Integer)newValue);
+ return;
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__BUCKET_CAP_MB:
+ setBucket_cap_mb((Integer)newValue);
+ return;
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__FIND_UNSUSED_PARAMETERS:
+ setFind_unsused_parameters((Boolean)newValue);
+ return;
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__CHECK_REDUCTION:
+ setCheck_reduction((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__BROADCAST_BUFFERS:
+ setBroadcast_buffers(BROADCAST_BUFFERS_EDEFAULT);
+ return;
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__PROCESS_GROUP:
+ setProcess_group(PROCESS_GROUP_EDEFAULT);
+ return;
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__BUCKET_CAP_MB:
+ setBucket_cap_mb(BUCKET_CAP_MB_EDEFAULT);
+ return;
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__FIND_UNSUSED_PARAMETERS:
+ setFind_unsused_parameters(FIND_UNSUSED_PARAMETERS_EDEFAULT);
+ return;
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__CHECK_REDUCTION:
+ setCheck_reduction(CHECK_REDUCTION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__BROADCAST_BUFFERS:
+ return broadcast_buffers != BROADCAST_BUFFERS_EDEFAULT;
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__PROCESS_GROUP:
+ return process_group != PROCESS_GROUP_EDEFAULT;
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__BUCKET_CAP_MB:
+ return bucket_cap_mb != BUCKET_CAP_MB_EDEFAULT;
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__FIND_UNSUSED_PARAMETERS:
+ return find_unsused_parameters != FIND_UNSUSED_PARAMETERS_EDEFAULT;
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL__CHECK_REDUCTION:
+ return check_reduction != CHECK_REDUCTION_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (broadcast_buffers: "); //$NON-NLS-1$
+ result.append(broadcast_buffers);
+ result.append(", process_group: "); //$NON-NLS-1$
+ result.append(process_group);
+ result.append(", bucket_cap_mb: "); //$NON-NLS-1$
+ result.append(bucket_cap_mb);
+ result.append(", find_unsused_parameters: "); //$NON-NLS-1$
+ result.append(find_unsused_parameters);
+ result.append(", check_reduction: "); //$NON-NLS-1$
+ result.append(check_reduction);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DistributedDataParallelImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/util/DataParallel_layersAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/util/DataParallel_layersAdapterFactory.java
new file mode 100644
index 0000000..5670f4b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/util/DataParallel_layersAdapterFactory.java
@@ -0,0 +1,184 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.*;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage
+ * @generated
+ */
+public class DataParallel_layersAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static DataParallel_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataParallel_layersAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = DataParallel_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DataParallel_layersSwitch<Adapter> modelSwitch =
+ new DataParallel_layersSwitch<Adapter>() {
+ @Override
+ public Adapter caseDataParallel_layers(DataParallel_layers object) {
+ return createDataParallel_layersAdapter();
+ }
+ @Override
+ public Adapter caseDistributedDataParallel(DistributedDataParallel object) {
+ return createDistributedDataParallelAdapter();
+ }
+ @Override
+ public Adapter caseDataParallel(DataParallel object) {
+ return createDataParallelAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers <em>Data Parallel layers</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layers
+ * @generated
+ */
+ public Adapter createDataParallel_layersAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel <em>Distributed Data Parallel</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DistributedDataParallel
+ * @generated
+ */
+ public Adapter createDistributedDataParallelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel <em>Data Parallel</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel
+ * @generated
+ */
+ public Adapter createDataParallelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //DataParallel_layersAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/util/DataParallel_layersSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/util/DataParallel_layersSwitch.java
new file mode 100644
index 0000000..3dfcb1d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/DataParallel_layers/util/DataParallel_layersSwitch.java
@@ -0,0 +1,182 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.*;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage
+ * @generated
+ */
+public class DataParallel_layersSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static DataParallel_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataParallel_layersSwitch() {
+ if (modelPackage == null) {
+ modelPackage = DataParallel_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case DataParallel_layersPackage.DATA_PARALLEL_LAYERS: {
+ DataParallel_layers dataParallel_layers = (DataParallel_layers)theEObject;
+ T result = caseDataParallel_layers(dataParallel_layers);
+ if (result == null) result = caseModel(dataParallel_layers);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DataParallel_layersPackage.DISTRIBUTED_DATA_PARALLEL: {
+ DistributedDataParallel distributedDataParallel = (DistributedDataParallel)theEObject;
+ T result = caseDistributedDataParallel(distributedDataParallel);
+ if (result == null) result = caseDataParallel_layers(distributedDataParallel);
+ if (result == null) result = caseModel(distributedDataParallel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case DataParallel_layersPackage.DATA_PARALLEL: {
+ DataParallel dataParallel = (DataParallel)theEObject;
+ T result = caseDataParallel(dataParallel);
+ if (result == null) result = caseDataParallel_layers(dataParallel);
+ if (result == null) result = caseModel(dataParallel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Data Parallel layers</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Data Parallel layers</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDataParallel_layers(DataParallel_layers object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Distributed Data Parallel</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Distributed Data Parallel</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDistributedDataParallel(DistributedDataParallel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Data Parallel</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Data Parallel</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDataParallel(DataParallel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //DataParallel_layersSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/CosineSimilarity.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/CosineSimilarity.java
new file mode 100644
index 0000000..3ba897d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/CosineSimilarity.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Distance_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cosine Similarity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.CosineSimilarity#getDim <em>Dim</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage#getCosineSimilarity()
+ * @model
+ * @generated
+ */
+public interface CosineSimilarity extends Distance_functions {
+ /**
+ * Returns the value of the '<em><b>Dim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dim</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dim</em>' attribute.
+ * @see #setDim(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage#getCosineSimilarity_Dim()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getDim();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.CosineSimilarity#getDim <em>Dim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dim</em>' attribute.
+ * @see #getDim()
+ * @generated
+ */
+ void setDim(int value);
+
+} // CosineSimilarity
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/Distance_functions.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/Distance_functions.java
new file mode 100644
index 0000000..0e869a8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/Distance_functions.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Distance_functions;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Distance functions</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functions#getEps <em>Eps</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage#getDistance_functions()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Distance_functions extends Model {
+ /**
+ * Returns the value of the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Eps</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Eps</em>' attribute.
+ * @see #setEps(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage#getDistance_functions_Eps()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getEps();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functions#getEps <em>Eps</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Eps</em>' attribute.
+ * @see #getEps()
+ * @generated
+ */
+ void setEps(double value);
+
+} // Distance_functions
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/Distance_functionsFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/Distance_functionsFactory.java
new file mode 100644
index 0000000..70bb555
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/Distance_functionsFactory.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Distance_functions;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage
+ * @generated
+ */
+public interface Distance_functionsFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Distance_functionsFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Cosine Similarity</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cosine Similarity</em>'.
+ * @generated
+ */
+ CosineSimilarity createCosineSimilarity();
+
+ /**
+ * Returns a new object of class '<em>Pairwise Distance</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Pairwise Distance</em>'.
+ * @generated
+ */
+ PairwiseDistance createPairwiseDistance();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Distance_functionsPackage getDistance_functionsPackage();
+
+} //Distance_functionsFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/Distance_functionsPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/Distance_functionsPackage.java
new file mode 100644
index 0000000..a3826bf
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/Distance_functionsPackage.java
@@ -0,0 +1,558 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Distance_functions;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Distance_functionsPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Distance_functions"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/distance/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Distance_functions"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Distance_functionsPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsImpl <em>Distance functions</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl#getDistance_functions()
+ * @generated
+ */
+ int DISTANCE_FUNCTIONS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTANCE_FUNCTIONS__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTANCE_FUNCTIONS__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTANCE_FUNCTIONS__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTANCE_FUNCTIONS__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTANCE_FUNCTIONS__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTANCE_FUNCTIONS__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTANCE_FUNCTIONS__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTANCE_FUNCTIONS__EPS = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Distance functions</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTANCE_FUNCTIONS_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Distance functions</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DISTANCE_FUNCTIONS_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.CosineSimilarityImpl <em>Cosine Similarity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.CosineSimilarityImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl#getCosineSimilarity()
+ * @generated
+ */
+ int COSINE_SIMILARITY = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_SIMILARITY__BASE_CLASS = DISTANCE_FUNCTIONS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_SIMILARITY__NAME = DISTANCE_FUNCTIONS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_SIMILARITY__DATA = DISTANCE_FUNCTIONS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_SIMILARITY__REQUIRES_GRAD = DISTANCE_FUNCTIONS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_SIMILARITY__SUB_MODULE = DISTANCE_FUNCTIONS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_SIMILARITY__OPTIMIZER = DISTANCE_FUNCTIONS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_SIMILARITY__LOSS = DISTANCE_FUNCTIONS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_SIMILARITY__EPS = DISTANCE_FUNCTIONS__EPS;
+
+ /**
+ * The feature id for the '<em><b>Dim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_SIMILARITY__DIM = DISTANCE_FUNCTIONS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Cosine Similarity</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_SIMILARITY_FEATURE_COUNT = DISTANCE_FUNCTIONS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Cosine Similarity</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_SIMILARITY_OPERATION_COUNT = DISTANCE_FUNCTIONS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.PairwiseDistanceImpl <em>Pairwise Distance</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.PairwiseDistanceImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl#getPairwiseDistance()
+ * @generated
+ */
+ int PAIRWISE_DISTANCE = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAIRWISE_DISTANCE__BASE_CLASS = DISTANCE_FUNCTIONS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAIRWISE_DISTANCE__NAME = DISTANCE_FUNCTIONS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAIRWISE_DISTANCE__DATA = DISTANCE_FUNCTIONS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAIRWISE_DISTANCE__REQUIRES_GRAD = DISTANCE_FUNCTIONS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAIRWISE_DISTANCE__SUB_MODULE = DISTANCE_FUNCTIONS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAIRWISE_DISTANCE__OPTIMIZER = DISTANCE_FUNCTIONS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAIRWISE_DISTANCE__LOSS = DISTANCE_FUNCTIONS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAIRWISE_DISTANCE__EPS = DISTANCE_FUNCTIONS__EPS;
+
+ /**
+ * The feature id for the '<em><b>P</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAIRWISE_DISTANCE__P = DISTANCE_FUNCTIONS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Keepdim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAIRWISE_DISTANCE__KEEPDIM = DISTANCE_FUNCTIONS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Pairwise Distance</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAIRWISE_DISTANCE_FEATURE_COUNT = DISTANCE_FUNCTIONS_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Pairwise Distance</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PAIRWISE_DISTANCE_OPERATION_COUNT = DISTANCE_FUNCTIONS_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functions <em>Distance functions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Distance functions</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functions
+ * @generated
+ */
+ EClass getDistance_functions();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functions#getEps <em>Eps</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Eps</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functions#getEps()
+ * @see #getDistance_functions()
+ * @generated
+ */
+ EAttribute getDistance_functions_Eps();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.CosineSimilarity <em>Cosine Similarity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cosine Similarity</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.CosineSimilarity
+ * @generated
+ */
+ EClass getCosineSimilarity();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.CosineSimilarity#getDim <em>Dim</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dim</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.CosineSimilarity#getDim()
+ * @see #getCosineSimilarity()
+ * @generated
+ */
+ EAttribute getCosineSimilarity_Dim();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.PairwiseDistance <em>Pairwise Distance</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Pairwise Distance</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.PairwiseDistance
+ * @generated
+ */
+ EClass getPairwiseDistance();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.PairwiseDistance#getP <em>P</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>P</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.PairwiseDistance#getP()
+ * @see #getPairwiseDistance()
+ * @generated
+ */
+ EAttribute getPairwiseDistance_P();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.PairwiseDistance#isKeepdim <em>Keepdim</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Keepdim</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.PairwiseDistance#isKeepdim()
+ * @see #getPairwiseDistance()
+ * @generated
+ */
+ EAttribute getPairwiseDistance_Keepdim();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Distance_functionsFactory getDistance_functionsFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsImpl <em>Distance functions</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl#getDistance_functions()
+ * @generated
+ */
+ EClass DISTANCE_FUNCTIONS = eINSTANCE.getDistance_functions();
+
+ /**
+ * The meta object literal for the '<em><b>Eps</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DISTANCE_FUNCTIONS__EPS = eINSTANCE.getDistance_functions_Eps();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.CosineSimilarityImpl <em>Cosine Similarity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.CosineSimilarityImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl#getCosineSimilarity()
+ * @generated
+ */
+ EClass COSINE_SIMILARITY = eINSTANCE.getCosineSimilarity();
+
+ /**
+ * The meta object literal for the '<em><b>Dim</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute COSINE_SIMILARITY__DIM = eINSTANCE.getCosineSimilarity_Dim();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.PairwiseDistanceImpl <em>Pairwise Distance</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.PairwiseDistanceImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl#getPairwiseDistance()
+ * @generated
+ */
+ EClass PAIRWISE_DISTANCE = eINSTANCE.getPairwiseDistance();
+
+ /**
+ * The meta object literal for the '<em><b>P</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PAIRWISE_DISTANCE__P = eINSTANCE.getPairwiseDistance_P();
+
+ /**
+ * The meta object literal for the '<em><b>Keepdim</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PAIRWISE_DISTANCE__KEEPDIM = eINSTANCE.getPairwiseDistance_Keepdim();
+
+ }
+
+} //Distance_functionsPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/PairwiseDistance.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/PairwiseDistance.java
new file mode 100644
index 0000000..ad0a2a1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/PairwiseDistance.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Distance_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Pairwise Distance</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.PairwiseDistance#getP <em>P</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.PairwiseDistance#isKeepdim <em>Keepdim</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage#getPairwiseDistance()
+ * @model
+ * @generated
+ */
+public interface PairwiseDistance extends Distance_functions {
+ /**
+ * Returns the value of the '<em><b>P</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>P</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>P</em>' attribute.
+ * @see #setP(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage#getPairwiseDistance_P()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getP();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.PairwiseDistance#getP <em>P</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>P</em>' attribute.
+ * @see #getP()
+ * @generated
+ */
+ void setP(double value);
+
+ /**
+ * Returns the value of the '<em><b>Keepdim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Keepdim</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Keepdim</em>' attribute.
+ * @see #setKeepdim(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage#getPairwiseDistance_Keepdim()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isKeepdim();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.PairwiseDistance#isKeepdim <em>Keepdim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Keepdim</em>' attribute.
+ * @see #isKeepdim()
+ * @generated
+ */
+ void setKeepdim(boolean value);
+
+} // PairwiseDistance
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/CosineSimilarityImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/CosineSimilarityImpl.java
new file mode 100644
index 0000000..e875fd4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/CosineSimilarityImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.CosineSimilarity;
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cosine Similarity</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.CosineSimilarityImpl#getDim <em>Dim</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CosineSimilarityImpl extends Distance_functionsImpl implements CosineSimilarity {
+ /**
+ * The default value of the '{@link #getDim() <em>Dim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDim()
+ * @generated
+ * @ordered
+ */
+ protected static final int DIM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getDim() <em>Dim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDim()
+ * @generated
+ * @ordered
+ */
+ protected int dim = DIM_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CosineSimilarityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Distance_functionsPackage.Literals.COSINE_SIMILARITY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getDim() {
+ return dim;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDim(int newDim) {
+ int oldDim = dim;
+ dim = newDim;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Distance_functionsPackage.COSINE_SIMILARITY__DIM, oldDim, dim));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Distance_functionsPackage.COSINE_SIMILARITY__DIM:
+ return getDim();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Distance_functionsPackage.COSINE_SIMILARITY__DIM:
+ setDim((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Distance_functionsPackage.COSINE_SIMILARITY__DIM:
+ setDim(DIM_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Distance_functionsPackage.COSINE_SIMILARITY__DIM:
+ return dim != DIM_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (dim: "); //$NON-NLS-1$
+ result.append(dim);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CosineSimilarityImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/Distance_functionsFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/Distance_functionsFactoryImpl.java
new file mode 100644
index 0000000..ed36a6a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/Distance_functionsFactoryImpl.java
@@ -0,0 +1,118 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Distance_functionsFactoryImpl extends EFactoryImpl implements Distance_functionsFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Distance_functionsFactory init() {
+ try {
+ Distance_functionsFactory theDistance_functionsFactory = (Distance_functionsFactory)EPackage.Registry.INSTANCE.getEFactory(Distance_functionsPackage.eNS_URI);
+ if (theDistance_functionsFactory != null) {
+ return theDistance_functionsFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Distance_functionsFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Distance_functionsFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Distance_functionsPackage.COSINE_SIMILARITY: return createCosineSimilarity();
+ case Distance_functionsPackage.PAIRWISE_DISTANCE: return createPairwiseDistance();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CosineSimilarity createCosineSimilarity() {
+ CosineSimilarityImpl cosineSimilarity = new CosineSimilarityImpl();
+ return cosineSimilarity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public PairwiseDistance createPairwiseDistance() {
+ PairwiseDistanceImpl pairwiseDistance = new PairwiseDistanceImpl();
+ return pairwiseDistance;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Distance_functionsPackage getDistance_functionsPackage() {
+ return (Distance_functionsPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Distance_functionsPackage getPackage() {
+ return Distance_functionsPackage.eINSTANCE;
+ }
+
+} //Distance_functionsFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/Distance_functionsImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/Distance_functionsImpl.java
new file mode 100644
index 0000000..d657868
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/Distance_functionsImpl.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functions;
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Distance functions</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsImpl#getEps <em>Eps</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Distance_functionsImpl extends ModelImpl implements Distance_functions {
+ /**
+ * The default value of the '{@link #getEps() <em>Eps</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEps()
+ * @generated
+ * @ordered
+ */
+ protected static final double EPS_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getEps() <em>Eps</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEps()
+ * @generated
+ * @ordered
+ */
+ protected double eps = EPS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Distance_functionsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Distance_functionsPackage.Literals.DISTANCE_FUNCTIONS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getEps() {
+ return eps;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setEps(double newEps) {
+ double oldEps = eps;
+ eps = newEps;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Distance_functionsPackage.DISTANCE_FUNCTIONS__EPS, oldEps, eps));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Distance_functionsPackage.DISTANCE_FUNCTIONS__EPS:
+ return getEps();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Distance_functionsPackage.DISTANCE_FUNCTIONS__EPS:
+ setEps((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Distance_functionsPackage.DISTANCE_FUNCTIONS__EPS:
+ setEps(EPS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Distance_functionsPackage.DISTANCE_FUNCTIONS__EPS:
+ return eps != EPS_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (eps: "); //$NON-NLS-1$
+ result.append(eps);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Distance_functionsImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/Distance_functionsPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/Distance_functionsPackageImpl.java
new file mode 100644
index 0000000..1399efc
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/Distance_functionsPackageImpl.java
@@ -0,0 +1,453 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.CosineSimilarity;
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functions;
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.PairwiseDistance;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Distance_functionsPackageImpl extends EPackageImpl implements Distance_functionsPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass distance_functionsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cosineSimilarityEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pairwiseDistanceEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Distance_functionsPackageImpl() {
+ super(eNS_URI, Distance_functionsFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Distance_functionsPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Distance_functionsPackage init() {
+ if (isInited) return (Distance_functionsPackage)EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredDistance_functionsPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = registeredDistance_functionsPackage instanceof Distance_functionsPackageImpl ? (Distance_functionsPackageImpl)registeredDistance_functionsPackage : new Distance_functionsPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theDistance_functionsPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theDistance_functionsPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theDistance_functionsPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Distance_functionsPackage.eNS_URI, theDistance_functionsPackage);
+ return theDistance_functionsPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDistance_functions() {
+ return distance_functionsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDistance_functions_Eps() {
+ return (EAttribute)distance_functionsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCosineSimilarity() {
+ return cosineSimilarityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getCosineSimilarity_Dim() {
+ return (EAttribute)cosineSimilarityEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPairwiseDistance() {
+ return pairwiseDistanceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPairwiseDistance_P() {
+ return (EAttribute)pairwiseDistanceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPairwiseDistance_Keepdim() {
+ return (EAttribute)pairwiseDistanceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Distance_functionsFactory getDistance_functionsFactory() {
+ return (Distance_functionsFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ distance_functionsEClass = createEClass(DISTANCE_FUNCTIONS);
+ createEAttribute(distance_functionsEClass, DISTANCE_FUNCTIONS__EPS);
+
+ cosineSimilarityEClass = createEClass(COSINE_SIMILARITY);
+ createEAttribute(cosineSimilarityEClass, COSINE_SIMILARITY__DIM);
+
+ pairwiseDistanceEClass = createEClass(PAIRWISE_DISTANCE);
+ createEAttribute(pairwiseDistanceEClass, PAIRWISE_DISTANCE__P);
+ createEAttribute(pairwiseDistanceEClass, PAIRWISE_DISTANCE__KEEPDIM);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ distance_functionsEClass.getESuperTypes().add(theModulePackage.getModel());
+ cosineSimilarityEClass.getESuperTypes().add(this.getDistance_functions());
+ pairwiseDistanceEClass.getESuperTypes().add(this.getDistance_functions());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(distance_functionsEClass, Distance_functions.class, "Distance_functions", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDistance_functions_Eps(), theTypesPackage.getReal(), "eps", null, 0, 1, Distance_functions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(cosineSimilarityEClass, CosineSimilarity.class, "CosineSimilarity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getCosineSimilarity_Dim(), theTypesPackage.getInteger(), "dim", null, 0, 1, CosineSimilarity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(pairwiseDistanceEClass, PairwiseDistance.class, "PairwiseDistance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPairwiseDistance_P(), theTypesPackage.getReal(), "p", null, 0, 1, PairwiseDistance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getPairwiseDistance_Keepdim(), theTypesPackage.getBoolean(), "keepdim", null, 0, 1, PairwiseDistance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ }
+
+} //Distance_functionsPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/PairwiseDistanceImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/PairwiseDistanceImpl.java
new file mode 100644
index 0000000..db6db4d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/impl/PairwiseDistanceImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.PairwiseDistance;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Pairwise Distance</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.PairwiseDistanceImpl#getP <em>P</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.PairwiseDistanceImpl#isKeepdim <em>Keepdim</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PairwiseDistanceImpl extends Distance_functionsImpl implements PairwiseDistance {
+ /**
+ * The default value of the '{@link #getP() <em>P</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getP()
+ * @generated
+ * @ordered
+ */
+ protected static final double P_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getP() <em>P</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getP()
+ * @generated
+ * @ordered
+ */
+ protected double p = P_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isKeepdim() <em>Keepdim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isKeepdim()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean KEEPDIM_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isKeepdim() <em>Keepdim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isKeepdim()
+ * @generated
+ * @ordered
+ */
+ protected boolean keepdim = KEEPDIM_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PairwiseDistanceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Distance_functionsPackage.Literals.PAIRWISE_DISTANCE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getP() {
+ return p;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setP(double newP) {
+ double oldP = p;
+ p = newP;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Distance_functionsPackage.PAIRWISE_DISTANCE__P, oldP, p));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isKeepdim() {
+ return keepdim;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setKeepdim(boolean newKeepdim) {
+ boolean oldKeepdim = keepdim;
+ keepdim = newKeepdim;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Distance_functionsPackage.PAIRWISE_DISTANCE__KEEPDIM, oldKeepdim, keepdim));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Distance_functionsPackage.PAIRWISE_DISTANCE__P:
+ return getP();
+ case Distance_functionsPackage.PAIRWISE_DISTANCE__KEEPDIM:
+ return isKeepdim();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Distance_functionsPackage.PAIRWISE_DISTANCE__P:
+ setP((Double)newValue);
+ return;
+ case Distance_functionsPackage.PAIRWISE_DISTANCE__KEEPDIM:
+ setKeepdim((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Distance_functionsPackage.PAIRWISE_DISTANCE__P:
+ setP(P_EDEFAULT);
+ return;
+ case Distance_functionsPackage.PAIRWISE_DISTANCE__KEEPDIM:
+ setKeepdim(KEEPDIM_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Distance_functionsPackage.PAIRWISE_DISTANCE__P:
+ return p != P_EDEFAULT;
+ case Distance_functionsPackage.PAIRWISE_DISTANCE__KEEPDIM:
+ return keepdim != KEEPDIM_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (p: "); //$NON-NLS-1$
+ result.append(p);
+ result.append(", keepdim: "); //$NON-NLS-1$
+ result.append(keepdim);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PairwiseDistanceImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/util/Distance_functionsAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/util/Distance_functionsAdapterFactory.java
new file mode 100644
index 0000000..f004452
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/util/Distance_functionsAdapterFactory.java
@@ -0,0 +1,184 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.*;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage
+ * @generated
+ */
+public class Distance_functionsAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Distance_functionsPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Distance_functionsAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Distance_functionsPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Distance_functionsSwitch<Adapter> modelSwitch =
+ new Distance_functionsSwitch<Adapter>() {
+ @Override
+ public Adapter caseDistance_functions(Distance_functions object) {
+ return createDistance_functionsAdapter();
+ }
+ @Override
+ public Adapter caseCosineSimilarity(CosineSimilarity object) {
+ return createCosineSimilarityAdapter();
+ }
+ @Override
+ public Adapter casePairwiseDistance(PairwiseDistance object) {
+ return createPairwiseDistanceAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functions <em>Distance functions</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functions
+ * @generated
+ */
+ public Adapter createDistance_functionsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.CosineSimilarity <em>Cosine Similarity</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.CosineSimilarity
+ * @generated
+ */
+ public Adapter createCosineSimilarityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.PairwiseDistance <em>Pairwise Distance</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.PairwiseDistance
+ * @generated
+ */
+ public Adapter createPairwiseDistanceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Distance_functionsAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/util/Distance_functionsSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/util/Distance_functionsSwitch.java
new file mode 100644
index 0000000..e1d1fd8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Distance_functions/util/Distance_functionsSwitch.java
@@ -0,0 +1,182 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.*;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage
+ * @generated
+ */
+public class Distance_functionsSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Distance_functionsPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Distance_functionsSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Distance_functionsPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Distance_functionsPackage.DISTANCE_FUNCTIONS: {
+ Distance_functions distance_functions = (Distance_functions)theEObject;
+ T result = caseDistance_functions(distance_functions);
+ if (result == null) result = caseModel(distance_functions);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Distance_functionsPackage.COSINE_SIMILARITY: {
+ CosineSimilarity cosineSimilarity = (CosineSimilarity)theEObject;
+ T result = caseCosineSimilarity(cosineSimilarity);
+ if (result == null) result = caseDistance_functions(cosineSimilarity);
+ if (result == null) result = caseModel(cosineSimilarity);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Distance_functionsPackage.PAIRWISE_DISTANCE: {
+ PairwiseDistance pairwiseDistance = (PairwiseDistance)theEObject;
+ T result = casePairwiseDistance(pairwiseDistance);
+ if (result == null) result = caseDistance_functions(pairwiseDistance);
+ if (result == null) result = caseModel(pairwiseDistance);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Distance functions</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Distance functions</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDistance_functions(Distance_functions object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cosine Similarity</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Cosine Similarity</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCosineSimilarity(CosineSimilarity object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Pairwise Distance</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Pairwise Distance</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePairwiseDistance(PairwiseDistance object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Distance_functionsSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/AlphaDropout.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/AlphaDropout.java
new file mode 100644
index 0000000..353704f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/AlphaDropout.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Alpha Dropout</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage#getAlphaDropout()
+ * @model
+ * @generated
+ */
+public interface AlphaDropout extends Dropout_layers {
+} // AlphaDropout
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout.java
new file mode 100644
index 0000000..627656e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Dropout</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage#getDropout()
+ * @model
+ * @generated
+ */
+public interface Dropout extends Dropout_layers {
+} // Dropout
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout2d.java
new file mode 100644
index 0000000..5b781af
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Dropout2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage#getDropout2d()
+ * @model
+ * @generated
+ */
+public interface Dropout2d extends Dropout_layers {
+} // Dropout2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout3d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout3d.java
new file mode 100644
index 0000000..9eac538
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout3d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Dropout3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage#getDropout3d()
+ * @model
+ * @generated
+ */
+public interface Dropout3d extends Dropout_layers {
+} // Dropout3d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout_layers.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout_layers.java
new file mode 100644
index 0000000..f33f3e1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout_layers.java
@@ -0,0 +1,131 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Dropout layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#getP <em>P</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#isInplace <em>Inplace</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#getNoise_shape <em>Noise shape</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#getSeed <em>Seed</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage#getDropout_layers()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Dropout_layers extends Model {
+ /**
+ * Returns the value of the '<em><b>P</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>P</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>P</em>' attribute.
+ * @see #setP(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage#getDropout_layers_P()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getP();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#getP <em>P</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>P</em>' attribute.
+ * @see #getP()
+ * @generated
+ */
+ void setP(double value);
+
+ /**
+ * Returns the value of the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Inplace</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Inplace</em>' attribute.
+ * @see #setInplace(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage#getDropout_layers_Inplace()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isInplace();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#isInplace <em>Inplace</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Inplace</em>' attribute.
+ * @see #isInplace()
+ * @generated
+ */
+ void setInplace(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Noise shape</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Noise shape</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Noise shape</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage#getDropout_layers_Noise_shape()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getNoise_shape();
+
+ /**
+ * Returns the value of the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Seed</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Seed</em>' attribute.
+ * @see #setSeed(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage#getDropout_layers_Seed()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getSeed();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#getSeed <em>Seed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Seed</em>' attribute.
+ * @see #getSeed()
+ * @generated
+ */
+ void setSeed(int value);
+
+} // Dropout_layers
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout_layersFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout_layersFactory.java
new file mode 100644
index 0000000..94161d9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout_layersFactory.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage
+ * @generated
+ */
+public interface Dropout_layersFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Dropout_layersFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Dropout</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Dropout</em>'.
+ * @generated
+ */
+ Dropout createDropout();
+
+ /**
+ * Returns a new object of class '<em>Dropout2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Dropout2d</em>'.
+ * @generated
+ */
+ Dropout2d createDropout2d();
+
+ /**
+ * Returns a new object of class '<em>Dropout3d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Dropout3d</em>'.
+ * @generated
+ */
+ Dropout3d createDropout3d();
+
+ /**
+ * Returns a new object of class '<em>Alpha Dropout</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Alpha Dropout</em>'.
+ * @generated
+ */
+ AlphaDropout createAlphaDropout();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Dropout_layersPackage getDropout_layersPackage();
+
+} //Dropout_layersFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout_layersPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout_layersPackage.java
new file mode 100644
index 0000000..a29291b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/Dropout_layersPackage.java
@@ -0,0 +1,906 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Dropout_layersPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Dropout_layers"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/dropout/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Dropout_layers"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Dropout_layersPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersImpl <em>Dropout layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl#getDropout_layers()
+ * @generated
+ */
+ int DROPOUT_LAYERS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_LAYERS__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_LAYERS__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_LAYERS__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_LAYERS__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_LAYERS__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_LAYERS__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_LAYERS__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The feature id for the '<em><b>P</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_LAYERS__P = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_LAYERS__INPLACE = ModulePackage.MODEL_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Noise shape</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_LAYERS__NOISE_SHAPE = ModulePackage.MODEL_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_LAYERS__SEED = ModulePackage.MODEL_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Dropout layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_LAYERS_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 4;
+
+ /**
+ * The number of operations of the '<em>Dropout layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_LAYERS_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.DropoutImpl <em>Dropout</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.DropoutImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl#getDropout()
+ * @generated
+ */
+ int DROPOUT = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT__BASE_CLASS = DROPOUT_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT__NAME = DROPOUT_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT__DATA = DROPOUT_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT__REQUIRES_GRAD = DROPOUT_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT__SUB_MODULE = DROPOUT_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT__OPTIMIZER = DROPOUT_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT__LOSS = DROPOUT_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>P</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT__P = DROPOUT_LAYERS__P;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT__INPLACE = DROPOUT_LAYERS__INPLACE;
+
+ /**
+ * The feature id for the '<em><b>Noise shape</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT__NOISE_SHAPE = DROPOUT_LAYERS__NOISE_SHAPE;
+
+ /**
+ * The feature id for the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT__SEED = DROPOUT_LAYERS__SEED;
+
+ /**
+ * The number of structural features of the '<em>Dropout</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_FEATURE_COUNT = DROPOUT_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Dropout</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT_OPERATION_COUNT = DROPOUT_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout2dImpl <em>Dropout2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl#getDropout2d()
+ * @generated
+ */
+ int DROPOUT2D = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT2D__BASE_CLASS = DROPOUT_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT2D__NAME = DROPOUT_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT2D__DATA = DROPOUT_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT2D__REQUIRES_GRAD = DROPOUT_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT2D__SUB_MODULE = DROPOUT_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT2D__OPTIMIZER = DROPOUT_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT2D__LOSS = DROPOUT_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>P</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT2D__P = DROPOUT_LAYERS__P;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT2D__INPLACE = DROPOUT_LAYERS__INPLACE;
+
+ /**
+ * The feature id for the '<em><b>Noise shape</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT2D__NOISE_SHAPE = DROPOUT_LAYERS__NOISE_SHAPE;
+
+ /**
+ * The feature id for the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT2D__SEED = DROPOUT_LAYERS__SEED;
+
+ /**
+ * The number of structural features of the '<em>Dropout2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT2D_FEATURE_COUNT = DROPOUT_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Dropout2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT2D_OPERATION_COUNT = DROPOUT_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout3dImpl <em>Dropout3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl#getDropout3d()
+ * @generated
+ */
+ int DROPOUT3D = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT3D__BASE_CLASS = DROPOUT_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT3D__NAME = DROPOUT_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT3D__DATA = DROPOUT_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT3D__REQUIRES_GRAD = DROPOUT_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT3D__SUB_MODULE = DROPOUT_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT3D__OPTIMIZER = DROPOUT_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT3D__LOSS = DROPOUT_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>P</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT3D__P = DROPOUT_LAYERS__P;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT3D__INPLACE = DROPOUT_LAYERS__INPLACE;
+
+ /**
+ * The feature id for the '<em><b>Noise shape</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT3D__NOISE_SHAPE = DROPOUT_LAYERS__NOISE_SHAPE;
+
+ /**
+ * The feature id for the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT3D__SEED = DROPOUT_LAYERS__SEED;
+
+ /**
+ * The number of structural features of the '<em>Dropout3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT3D_FEATURE_COUNT = DROPOUT_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Dropout3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DROPOUT3D_OPERATION_COUNT = DROPOUT_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.AlphaDropoutImpl <em>Alpha Dropout</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.AlphaDropoutImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl#getAlphaDropout()
+ * @generated
+ */
+ int ALPHA_DROPOUT = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALPHA_DROPOUT__BASE_CLASS = DROPOUT_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALPHA_DROPOUT__NAME = DROPOUT_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALPHA_DROPOUT__DATA = DROPOUT_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALPHA_DROPOUT__REQUIRES_GRAD = DROPOUT_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALPHA_DROPOUT__SUB_MODULE = DROPOUT_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALPHA_DROPOUT__OPTIMIZER = DROPOUT_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALPHA_DROPOUT__LOSS = DROPOUT_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>P</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALPHA_DROPOUT__P = DROPOUT_LAYERS__P;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALPHA_DROPOUT__INPLACE = DROPOUT_LAYERS__INPLACE;
+
+ /**
+ * The feature id for the '<em><b>Noise shape</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALPHA_DROPOUT__NOISE_SHAPE = DROPOUT_LAYERS__NOISE_SHAPE;
+
+ /**
+ * The feature id for the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALPHA_DROPOUT__SEED = DROPOUT_LAYERS__SEED;
+
+ /**
+ * The number of structural features of the '<em>Alpha Dropout</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALPHA_DROPOUT_FEATURE_COUNT = DROPOUT_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Alpha Dropout</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ALPHA_DROPOUT_OPERATION_COUNT = DROPOUT_LAYERS_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers <em>Dropout layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Dropout layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers
+ * @generated
+ */
+ EClass getDropout_layers();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#getP <em>P</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>P</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#getP()
+ * @see #getDropout_layers()
+ * @generated
+ */
+ EAttribute getDropout_layers_P();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#isInplace <em>Inplace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Inplace</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#isInplace()
+ * @see #getDropout_layers()
+ * @generated
+ */
+ EAttribute getDropout_layers_Inplace();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#getNoise_shape <em>Noise shape</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Noise shape</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#getNoise_shape()
+ * @see #getDropout_layers()
+ * @generated
+ */
+ EAttribute getDropout_layers_Noise_shape();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#getSeed <em>Seed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Seed</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers#getSeed()
+ * @see #getDropout_layers()
+ * @generated
+ */
+ EAttribute getDropout_layers_Seed();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout <em>Dropout</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Dropout</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout
+ * @generated
+ */
+ EClass getDropout();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout2d <em>Dropout2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Dropout2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout2d
+ * @generated
+ */
+ EClass getDropout2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout3d <em>Dropout3d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Dropout3d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout3d
+ * @generated
+ */
+ EClass getDropout3d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.AlphaDropout <em>Alpha Dropout</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Alpha Dropout</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.AlphaDropout
+ * @generated
+ */
+ EClass getAlphaDropout();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Dropout_layersFactory getDropout_layersFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersImpl <em>Dropout layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl#getDropout_layers()
+ * @generated
+ */
+ EClass DROPOUT_LAYERS = eINSTANCE.getDropout_layers();
+
+ /**
+ * The meta object literal for the '<em><b>P</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DROPOUT_LAYERS__P = eINSTANCE.getDropout_layers_P();
+
+ /**
+ * The meta object literal for the '<em><b>Inplace</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DROPOUT_LAYERS__INPLACE = eINSTANCE.getDropout_layers_Inplace();
+
+ /**
+ * The meta object literal for the '<em><b>Noise shape</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DROPOUT_LAYERS__NOISE_SHAPE = eINSTANCE.getDropout_layers_Noise_shape();
+
+ /**
+ * The meta object literal for the '<em><b>Seed</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DROPOUT_LAYERS__SEED = eINSTANCE.getDropout_layers_Seed();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.DropoutImpl <em>Dropout</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.DropoutImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl#getDropout()
+ * @generated
+ */
+ EClass DROPOUT = eINSTANCE.getDropout();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout2dImpl <em>Dropout2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl#getDropout2d()
+ * @generated
+ */
+ EClass DROPOUT2D = eINSTANCE.getDropout2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout3dImpl <em>Dropout3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl#getDropout3d()
+ * @generated
+ */
+ EClass DROPOUT3D = eINSTANCE.getDropout3d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.AlphaDropoutImpl <em>Alpha Dropout</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.AlphaDropoutImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl#getAlphaDropout()
+ * @generated
+ */
+ EClass ALPHA_DROPOUT = eINSTANCE.getAlphaDropout();
+
+ }
+
+} //Dropout_layersPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/AlphaDropoutImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/AlphaDropoutImpl.java
new file mode 100644
index 0000000..730909a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/AlphaDropoutImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.AlphaDropout;
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Alpha Dropout</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AlphaDropoutImpl extends Dropout_layersImpl implements AlphaDropout {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AlphaDropoutImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Dropout_layersPackage.Literals.ALPHA_DROPOUT;
+ }
+
+} //AlphaDropoutImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout2dImpl.java
new file mode 100644
index 0000000..01cfacb
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Dropout2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class Dropout2dImpl extends Dropout_layersImpl implements Dropout2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Dropout2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Dropout_layersPackage.Literals.DROPOUT2D;
+ }
+
+} //Dropout2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout3dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout3dImpl.java
new file mode 100644
index 0000000..102c533
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout3dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Dropout3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class Dropout3dImpl extends Dropout_layersImpl implements Dropout3d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Dropout3dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Dropout_layersPackage.Literals.DROPOUT3D;
+ }
+
+} //Dropout3dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/DropoutImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/DropoutImpl.java
new file mode 100644
index 0000000..dbd6d7e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/DropoutImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout;
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Dropout</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class DropoutImpl extends Dropout_layersImpl implements Dropout {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DropoutImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Dropout_layersPackage.Literals.DROPOUT;
+ }
+
+} //DropoutImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout_layersFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout_layersFactoryImpl.java
new file mode 100644
index 0000000..cf8810d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout_layersFactoryImpl.java
@@ -0,0 +1,142 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Dropout_layersFactoryImpl extends EFactoryImpl implements Dropout_layersFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Dropout_layersFactory init() {
+ try {
+ Dropout_layersFactory theDropout_layersFactory = (Dropout_layersFactory)EPackage.Registry.INSTANCE.getEFactory(Dropout_layersPackage.eNS_URI);
+ if (theDropout_layersFactory != null) {
+ return theDropout_layersFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Dropout_layersFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Dropout_layersFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Dropout_layersPackage.DROPOUT: return createDropout();
+ case Dropout_layersPackage.DROPOUT2D: return createDropout2d();
+ case Dropout_layersPackage.DROPOUT3D: return createDropout3d();
+ case Dropout_layersPackage.ALPHA_DROPOUT: return createAlphaDropout();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Dropout createDropout() {
+ DropoutImpl dropout = new DropoutImpl();
+ return dropout;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Dropout2d createDropout2d() {
+ Dropout2dImpl dropout2d = new Dropout2dImpl();
+ return dropout2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Dropout3d createDropout3d() {
+ Dropout3dImpl dropout3d = new Dropout3dImpl();
+ return dropout3d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AlphaDropout createAlphaDropout() {
+ AlphaDropoutImpl alphaDropout = new AlphaDropoutImpl();
+ return alphaDropout;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Dropout_layersPackage getDropout_layersPackage() {
+ return (Dropout_layersPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Dropout_layersPackage getPackage() {
+ return Dropout_layersPackage.eINSTANCE;
+ }
+
+} //Dropout_layersFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout_layersImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout_layersImpl.java
new file mode 100644
index 0000000..8702ac9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout_layersImpl.java
@@ -0,0 +1,330 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Dropout layers</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersImpl#getP <em>P</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersImpl#isInplace <em>Inplace</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersImpl#getNoise_shape <em>Noise shape</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersImpl#getSeed <em>Seed</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Dropout_layersImpl extends ModelImpl implements Dropout_layers {
+ /**
+ * The default value of the '{@link #getP() <em>P</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getP()
+ * @generated
+ * @ordered
+ */
+ protected static final double P_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getP() <em>P</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getP()
+ * @generated
+ * @ordered
+ */
+ protected double p = P_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isInplace() <em>Inplace</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInplace()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean INPLACE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isInplace() <em>Inplace</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInplace()
+ * @generated
+ * @ordered
+ */
+ protected boolean inplace = INPLACE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getNoise_shape() <em>Noise shape</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNoise_shape()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> noise_shape;
+
+ /**
+ * The default value of the '{@link #getSeed() <em>Seed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSeed()
+ * @generated
+ * @ordered
+ */
+ protected static final int SEED_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSeed() <em>Seed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSeed()
+ * @generated
+ * @ordered
+ */
+ protected int seed = SEED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Dropout_layersImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Dropout_layersPackage.Literals.DROPOUT_LAYERS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getP() {
+ return p;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setP(double newP) {
+ double oldP = p;
+ p = newP;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Dropout_layersPackage.DROPOUT_LAYERS__P, oldP, p));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isInplace() {
+ return inplace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setInplace(boolean newInplace) {
+ boolean oldInplace = inplace;
+ inplace = newInplace;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Dropout_layersPackage.DROPOUT_LAYERS__INPLACE, oldInplace, inplace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getNoise_shape() {
+ if (noise_shape == null) {
+ noise_shape = new EDataTypeUniqueEList<Integer>(Integer.class, this, Dropout_layersPackage.DROPOUT_LAYERS__NOISE_SHAPE);
+ }
+ return noise_shape;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getSeed() {
+ return seed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSeed(int newSeed) {
+ int oldSeed = seed;
+ seed = newSeed;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Dropout_layersPackage.DROPOUT_LAYERS__SEED, oldSeed, seed));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Dropout_layersPackage.DROPOUT_LAYERS__P:
+ return getP();
+ case Dropout_layersPackage.DROPOUT_LAYERS__INPLACE:
+ return isInplace();
+ case Dropout_layersPackage.DROPOUT_LAYERS__NOISE_SHAPE:
+ return getNoise_shape();
+ case Dropout_layersPackage.DROPOUT_LAYERS__SEED:
+ return getSeed();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Dropout_layersPackage.DROPOUT_LAYERS__P:
+ setP((Double)newValue);
+ return;
+ case Dropout_layersPackage.DROPOUT_LAYERS__INPLACE:
+ setInplace((Boolean)newValue);
+ return;
+ case Dropout_layersPackage.DROPOUT_LAYERS__NOISE_SHAPE:
+ getNoise_shape().clear();
+ getNoise_shape().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case Dropout_layersPackage.DROPOUT_LAYERS__SEED:
+ setSeed((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Dropout_layersPackage.DROPOUT_LAYERS__P:
+ setP(P_EDEFAULT);
+ return;
+ case Dropout_layersPackage.DROPOUT_LAYERS__INPLACE:
+ setInplace(INPLACE_EDEFAULT);
+ return;
+ case Dropout_layersPackage.DROPOUT_LAYERS__NOISE_SHAPE:
+ getNoise_shape().clear();
+ return;
+ case Dropout_layersPackage.DROPOUT_LAYERS__SEED:
+ setSeed(SEED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Dropout_layersPackage.DROPOUT_LAYERS__P:
+ return p != P_EDEFAULT;
+ case Dropout_layersPackage.DROPOUT_LAYERS__INPLACE:
+ return inplace != INPLACE_EDEFAULT;
+ case Dropout_layersPackage.DROPOUT_LAYERS__NOISE_SHAPE:
+ return noise_shape != null && !noise_shape.isEmpty();
+ case Dropout_layersPackage.DROPOUT_LAYERS__SEED:
+ return seed != SEED_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (p: "); //$NON-NLS-1$
+ result.append(p);
+ result.append(", inplace: "); //$NON-NLS-1$
+ result.append(inplace);
+ result.append(", noise_shape: "); //$NON-NLS-1$
+ result.append(noise_shape);
+ result.append(", seed: "); //$NON-NLS-1$
+ result.append(seed);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Dropout_layersImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout_layersPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout_layersPackageImpl.java
new file mode 100644
index 0000000..22378aa
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/impl/Dropout_layersPackageImpl.java
@@ -0,0 +1,499 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.AlphaDropout;
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout;
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Dropout_layersPackageImpl extends EPackageImpl implements Dropout_layersPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dropout_layersEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dropoutEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dropout2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dropout3dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass alphaDropoutEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Dropout_layersPackageImpl() {
+ super(eNS_URI, Dropout_layersFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Dropout_layersPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Dropout_layersPackage init() {
+ if (isInited) return (Dropout_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredDropout_layersPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = registeredDropout_layersPackage instanceof Dropout_layersPackageImpl ? (Dropout_layersPackageImpl)registeredDropout_layersPackage : new Dropout_layersPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theDropout_layersPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theDropout_layersPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theDropout_layersPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Dropout_layersPackage.eNS_URI, theDropout_layersPackage);
+ return theDropout_layersPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDropout_layers() {
+ return dropout_layersEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDropout_layers_P() {
+ return (EAttribute)dropout_layersEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDropout_layers_Inplace() {
+ return (EAttribute)dropout_layersEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDropout_layers_Noise_shape() {
+ return (EAttribute)dropout_layersEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDropout_layers_Seed() {
+ return (EAttribute)dropout_layersEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDropout() {
+ return dropoutEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDropout2d() {
+ return dropout2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDropout3d() {
+ return dropout3dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAlphaDropout() {
+ return alphaDropoutEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Dropout_layersFactory getDropout_layersFactory() {
+ return (Dropout_layersFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ dropout_layersEClass = createEClass(DROPOUT_LAYERS);
+ createEAttribute(dropout_layersEClass, DROPOUT_LAYERS__P);
+ createEAttribute(dropout_layersEClass, DROPOUT_LAYERS__INPLACE);
+ createEAttribute(dropout_layersEClass, DROPOUT_LAYERS__NOISE_SHAPE);
+ createEAttribute(dropout_layersEClass, DROPOUT_LAYERS__SEED);
+
+ dropoutEClass = createEClass(DROPOUT);
+
+ dropout2dEClass = createEClass(DROPOUT2D);
+
+ dropout3dEClass = createEClass(DROPOUT3D);
+
+ alphaDropoutEClass = createEClass(ALPHA_DROPOUT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ dropout_layersEClass.getESuperTypes().add(theModulePackage.getModel());
+ dropoutEClass.getESuperTypes().add(this.getDropout_layers());
+ dropout2dEClass.getESuperTypes().add(this.getDropout_layers());
+ dropout3dEClass.getESuperTypes().add(this.getDropout_layers());
+ alphaDropoutEClass.getESuperTypes().add(this.getDropout_layers());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(dropout_layersEClass, Dropout_layers.class, "Dropout_layers", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDropout_layers_P(), theTypesPackage.getReal(), "p", null, 0, 1, Dropout_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDropout_layers_Inplace(), theTypesPackage.getBoolean(), "inplace", null, 0, 1, Dropout_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDropout_layers_Noise_shape(), theTypesPackage.getInteger(), "noise_shape", null, 0, -1, Dropout_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getDropout_layers_Seed(), theTypesPackage.getInteger(), "seed", null, 0, 1, Dropout_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(dropoutEClass, Dropout.class, "Dropout", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(dropout2dEClass, Dropout2d.class, "Dropout2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(dropout3dEClass, Dropout3d.class, "Dropout3d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(alphaDropoutEClass, AlphaDropout.class, "AlphaDropout", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ }
+
+} //Dropout_layersPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/util/Dropout_layersAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/util/Dropout_layersAdapterFactory.java
new file mode 100644
index 0000000..7bc7576
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/util/Dropout_layersAdapterFactory.java
@@ -0,0 +1,220 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.*;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage
+ * @generated
+ */
+public class Dropout_layersAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Dropout_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Dropout_layersAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Dropout_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Dropout_layersSwitch<Adapter> modelSwitch =
+ new Dropout_layersSwitch<Adapter>() {
+ @Override
+ public Adapter caseDropout_layers(Dropout_layers object) {
+ return createDropout_layersAdapter();
+ }
+ @Override
+ public Adapter caseDropout(Dropout object) {
+ return createDropoutAdapter();
+ }
+ @Override
+ public Adapter caseDropout2d(Dropout2d object) {
+ return createDropout2dAdapter();
+ }
+ @Override
+ public Adapter caseDropout3d(Dropout3d object) {
+ return createDropout3dAdapter();
+ }
+ @Override
+ public Adapter caseAlphaDropout(AlphaDropout object) {
+ return createAlphaDropoutAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers <em>Dropout layers</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layers
+ * @generated
+ */
+ public Adapter createDropout_layersAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout <em>Dropout</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout
+ * @generated
+ */
+ public Adapter createDropoutAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout2d <em>Dropout2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout2d
+ * @generated
+ */
+ public Adapter createDropout2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout3d <em>Dropout3d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout3d
+ * @generated
+ */
+ public Adapter createDropout3dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.AlphaDropout <em>Alpha Dropout</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.AlphaDropout
+ * @generated
+ */
+ public Adapter createAlphaDropoutAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Dropout_layersAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/util/Dropout_layersSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/util/Dropout_layersSwitch.java
new file mode 100644
index 0000000..ba3ae1a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Dropout_layers/util/Dropout_layersSwitch.java
@@ -0,0 +1,228 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.*;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage
+ * @generated
+ */
+public class Dropout_layersSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Dropout_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Dropout_layersSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Dropout_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Dropout_layersPackage.DROPOUT_LAYERS: {
+ Dropout_layers dropout_layers = (Dropout_layers)theEObject;
+ T result = caseDropout_layers(dropout_layers);
+ if (result == null) result = caseModel(dropout_layers);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Dropout_layersPackage.DROPOUT: {
+ Dropout dropout = (Dropout)theEObject;
+ T result = caseDropout(dropout);
+ if (result == null) result = caseDropout_layers(dropout);
+ if (result == null) result = caseModel(dropout);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Dropout_layersPackage.DROPOUT2D: {
+ Dropout2d dropout2d = (Dropout2d)theEObject;
+ T result = caseDropout2d(dropout2d);
+ if (result == null) result = caseDropout_layers(dropout2d);
+ if (result == null) result = caseModel(dropout2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Dropout_layersPackage.DROPOUT3D: {
+ Dropout3d dropout3d = (Dropout3d)theEObject;
+ T result = caseDropout3d(dropout3d);
+ if (result == null) result = caseDropout_layers(dropout3d);
+ if (result == null) result = caseModel(dropout3d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Dropout_layersPackage.ALPHA_DROPOUT: {
+ AlphaDropout alphaDropout = (AlphaDropout)theEObject;
+ T result = caseAlphaDropout(alphaDropout);
+ if (result == null) result = caseDropout_layers(alphaDropout);
+ if (result == null) result = caseModel(alphaDropout);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Dropout layers</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Dropout layers</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDropout_layers(Dropout_layers object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Dropout</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Dropout</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDropout(Dropout object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Dropout2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Dropout2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDropout2d(Dropout2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Dropout3d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Dropout3d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDropout3d(Dropout3d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Alpha Dropout</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Alpha Dropout</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAlphaDropout(AlphaDropout object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Dropout_layersSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/Layer_weight_constraintsFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/Layer_weight_constraintsFactory.java
new file mode 100644
index 0000000..8fb8633
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/Layer_weight_constraintsFactory.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage
+ * @generated
+ */
+public interface Layer_weight_constraintsFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Layer_weight_constraintsFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>min max norm</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>min max norm</em>'.
+ * @generated
+ */
+ min_max_norm createmin_max_norm();
+
+ /**
+ * Returns a new object of class '<em>max norm</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>max norm</em>'.
+ * @generated
+ */
+ max_norm createmax_norm();
+
+ /**
+ * Returns a new object of class '<em>non neg</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>non neg</em>'.
+ * @generated
+ */
+ non_neg createnon_neg();
+
+ /**
+ * Returns a new object of class '<em>radial constraint</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>radial constraint</em>'.
+ * @generated
+ */
+ radial_constraint createradial_constraint();
+
+ /**
+ * Returns a new object of class '<em>unit norm</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>unit norm</em>'.
+ * @generated
+ */
+ unit_norm createunit_norm();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Layer_weight_constraintsPackage getLayer_weight_constraintsPackage();
+
+} //Layer_weight_constraintsFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/Layer_weight_constraintsPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/Layer_weight_constraintsPackage.java
new file mode 100644
index 0000000..86ad8a8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/Layer_weight_constraintsPackage.java
@@ -0,0 +1,643 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Layer_weight_constraintsPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Layer_weight_constraints"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///AIML/Layer_weight_constraints.ecore"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Layer_weight_constraints"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Layer_weight_constraintsPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.constraintsImpl <em>constraints</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.constraintsImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getconstraints()
+ * @generated
+ */
+ int CONSTRAINTS = 7;
+
+ /**
+ * The number of structural features of the '<em>constraints</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINTS_FEATURE_COUNT = 0;
+
+ /**
+ * The number of operations of the '<em>constraints</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTRAINTS_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.normImpl <em>norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.normImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getnorm()
+ * @generated
+ */
+ int NORM = 2;
+
+ /**
+ * The feature id for the '<em><b>Axis</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORM__AXIS = CONSTRAINTS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORM_FEATURE_COUNT = CONSTRAINTS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORM_OPERATION_COUNT = CONSTRAINTS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.NormWithMaxValueImpl <em>Norm With Max Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.NormWithMaxValueImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getNormWithMaxValue()
+ * @generated
+ */
+ int NORM_WITH_MAX_VALUE = 1;
+
+ /**
+ * The feature id for the '<em><b>Axis</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORM_WITH_MAX_VALUE__AXIS = NORM__AXIS;
+
+ /**
+ * The feature id for the '<em><b>Max value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORM_WITH_MAX_VALUE__MAX_VALUE = NORM_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Norm With Max Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORM_WITH_MAX_VALUE_FEATURE_COUNT = NORM_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Norm With Max Value</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORM_WITH_MAX_VALUE_OPERATION_COUNT = NORM_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.min_max_normImpl <em>min max norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.min_max_normImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getmin_max_norm()
+ * @generated
+ */
+ int MIN_MAX_NORM = 0;
+
+ /**
+ * The feature id for the '<em><b>Axis</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_MAX_NORM__AXIS = NORM_WITH_MAX_VALUE__AXIS;
+
+ /**
+ * The feature id for the '<em><b>Max value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_MAX_NORM__MAX_VALUE = NORM_WITH_MAX_VALUE__MAX_VALUE;
+
+ /**
+ * The feature id for the '<em><b>Min value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_MAX_NORM__MIN_VALUE = NORM_WITH_MAX_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_MAX_NORM__RATE = NORM_WITH_MAX_VALUE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>min max norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_MAX_NORM_FEATURE_COUNT = NORM_WITH_MAX_VALUE_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>min max norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MIN_MAX_NORM_OPERATION_COUNT = NORM_WITH_MAX_VALUE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.max_normImpl <em>max norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.max_normImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getmax_norm()
+ * @generated
+ */
+ int MAX_NORM = 3;
+
+ /**
+ * The feature id for the '<em><b>Axis</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_NORM__AXIS = NORM_WITH_MAX_VALUE__AXIS;
+
+ /**
+ * The feature id for the '<em><b>Max value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_NORM__MAX_VALUE = NORM_WITH_MAX_VALUE__MAX_VALUE;
+
+ /**
+ * The number of structural features of the '<em>max norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_NORM_FEATURE_COUNT = NORM_WITH_MAX_VALUE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>max norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_NORM_OPERATION_COUNT = NORM_WITH_MAX_VALUE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.non_negImpl <em>non neg</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.non_negImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getnon_neg()
+ * @generated
+ */
+ int NON_NEG = 4;
+
+ /**
+ * The number of structural features of the '<em>non neg</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NON_NEG_FEATURE_COUNT = CONSTRAINTS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>non neg</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NON_NEG_OPERATION_COUNT = CONSTRAINTS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.radial_constraintImpl <em>radial constraint</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.radial_constraintImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getradial_constraint()
+ * @generated
+ */
+ int RADIAL_CONSTRAINT = 5;
+
+ /**
+ * The number of structural features of the '<em>radial constraint</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RADIAL_CONSTRAINT_FEATURE_COUNT = CONSTRAINTS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>radial constraint</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RADIAL_CONSTRAINT_OPERATION_COUNT = CONSTRAINTS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.unit_normImpl <em>unit norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.unit_normImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getunit_norm()
+ * @generated
+ */
+ int UNIT_NORM = 6;
+
+ /**
+ * The feature id for the '<em><b>Axis</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNIT_NORM__AXIS = NORM__AXIS;
+
+ /**
+ * The number of structural features of the '<em>unit norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNIT_NORM_FEATURE_COUNT = NORM_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>unit norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNIT_NORM_OPERATION_COUNT = NORM_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.min_max_norm <em>min max norm</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>min max norm</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.min_max_norm
+ * @generated
+ */
+ EClass getmin_max_norm();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.min_max_norm#getMin_value <em>Min value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Min value</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.min_max_norm#getMin_value()
+ * @see #getmin_max_norm()
+ * @generated
+ */
+ EAttribute getmin_max_norm_Min_value();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.min_max_norm#getRate <em>Rate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Rate</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.min_max_norm#getRate()
+ * @see #getmin_max_norm()
+ * @generated
+ */
+ EAttribute getmin_max_norm_Rate();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.NormWithMaxValue <em>Norm With Max Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Norm With Max Value</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.NormWithMaxValue
+ * @generated
+ */
+ EClass getNormWithMaxValue();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.NormWithMaxValue#getMax_value <em>Max value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Max value</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.NormWithMaxValue#getMax_value()
+ * @see #getNormWithMaxValue()
+ * @generated
+ */
+ EAttribute getNormWithMaxValue_Max_value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.norm <em>norm</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>norm</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.norm
+ * @generated
+ */
+ EClass getnorm();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.norm#getAxis <em>Axis</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Axis</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.norm#getAxis()
+ * @see #getnorm()
+ * @generated
+ */
+ EAttribute getnorm_Axis();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.max_norm <em>max norm</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>max norm</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.max_norm
+ * @generated
+ */
+ EClass getmax_norm();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.non_neg <em>non neg</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>non neg</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.non_neg
+ * @generated
+ */
+ EClass getnon_neg();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.radial_constraint <em>radial constraint</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>radial constraint</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.radial_constraint
+ * @generated
+ */
+ EClass getradial_constraint();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.unit_norm <em>unit norm</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>unit norm</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.unit_norm
+ * @generated
+ */
+ EClass getunit_norm();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.constraints <em>constraints</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>constraints</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.constraints
+ * @generated
+ */
+ EClass getconstraints();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Layer_weight_constraintsFactory getLayer_weight_constraintsFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.min_max_normImpl <em>min max norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.min_max_normImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getmin_max_norm()
+ * @generated
+ */
+ EClass MIN_MAX_NORM = eINSTANCE.getmin_max_norm();
+
+ /**
+ * The meta object literal for the '<em><b>Min value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MIN_MAX_NORM__MIN_VALUE = eINSTANCE.getmin_max_norm_Min_value();
+
+ /**
+ * The meta object literal for the '<em><b>Rate</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MIN_MAX_NORM__RATE = eINSTANCE.getmin_max_norm_Rate();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.NormWithMaxValueImpl <em>Norm With Max Value</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.NormWithMaxValueImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getNormWithMaxValue()
+ * @generated
+ */
+ EClass NORM_WITH_MAX_VALUE = eINSTANCE.getNormWithMaxValue();
+
+ /**
+ * The meta object literal for the '<em><b>Max value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NORM_WITH_MAX_VALUE__MAX_VALUE = eINSTANCE.getNormWithMaxValue_Max_value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.normImpl <em>norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.normImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getnorm()
+ * @generated
+ */
+ EClass NORM = eINSTANCE.getnorm();
+
+ /**
+ * The meta object literal for the '<em><b>Axis</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NORM__AXIS = eINSTANCE.getnorm_Axis();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.max_normImpl <em>max norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.max_normImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getmax_norm()
+ * @generated
+ */
+ EClass MAX_NORM = eINSTANCE.getmax_norm();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.non_negImpl <em>non neg</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.non_negImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getnon_neg()
+ * @generated
+ */
+ EClass NON_NEG = eINSTANCE.getnon_neg();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.radial_constraintImpl <em>radial constraint</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.radial_constraintImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getradial_constraint()
+ * @generated
+ */
+ EClass RADIAL_CONSTRAINT = eINSTANCE.getradial_constraint();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.unit_normImpl <em>unit norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.unit_normImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getunit_norm()
+ * @generated
+ */
+ EClass UNIT_NORM = eINSTANCE.getunit_norm();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.constraintsImpl <em>constraints</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.constraintsImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl#getconstraints()
+ * @generated
+ */
+ EClass CONSTRAINTS = eINSTANCE.getconstraints();
+
+ }
+
+} //Layer_weight_constraintsPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/NormWithMaxValue.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/NormWithMaxValue.java
new file mode 100644
index 0000000..ff7ebd6
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/NormWithMaxValue.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Norm With Max Value</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.NormWithMaxValue#getMax_value <em>Max value</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage#getNormWithMaxValue()
+ * @model abstract="true"
+ * @generated
+ */
+public interface NormWithMaxValue extends norm {
+ /**
+ * Returns the value of the '<em><b>Max value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Max value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Max value</em>' attribute.
+ * @see #setMax_value(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage#getNormWithMaxValue_Max_value()
+ * @model dataType="org.eclipse.uml2.types.Real" required="true" ordered="false"
+ * @generated
+ */
+ double getMax_value();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.NormWithMaxValue#getMax_value <em>Max value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Max value</em>' attribute.
+ * @see #getMax_value()
+ * @generated
+ */
+ void setMax_value(double value);
+
+} // NormWithMaxValue
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/constraints.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/constraints.java
new file mode 100644
index 0000000..6b54d6f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/constraints.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>constraints</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage#getconstraints()
+ * @model abstract="true"
+ * @generated
+ */
+public interface constraints extends EObject {
+} // constraints
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/Layer_weight_constraintsFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/Layer_weight_constraintsFactoryImpl.java
new file mode 100644
index 0000000..5b09109
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/Layer_weight_constraintsFactoryImpl.java
@@ -0,0 +1,154 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Layer_weight_constraintsFactoryImpl extends EFactoryImpl implements Layer_weight_constraintsFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Layer_weight_constraintsFactory init() {
+ try {
+ Layer_weight_constraintsFactory theLayer_weight_constraintsFactory = (Layer_weight_constraintsFactory)EPackage.Registry.INSTANCE.getEFactory(Layer_weight_constraintsPackage.eNS_URI);
+ if (theLayer_weight_constraintsFactory != null) {
+ return theLayer_weight_constraintsFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Layer_weight_constraintsFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Layer_weight_constraintsFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Layer_weight_constraintsPackage.MIN_MAX_NORM: return createmin_max_norm();
+ case Layer_weight_constraintsPackage.MAX_NORM: return createmax_norm();
+ case Layer_weight_constraintsPackage.NON_NEG: return createnon_neg();
+ case Layer_weight_constraintsPackage.RADIAL_CONSTRAINT: return createradial_constraint();
+ case Layer_weight_constraintsPackage.UNIT_NORM: return createunit_norm();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public min_max_norm createmin_max_norm() {
+ min_max_normImpl min_max_norm = new min_max_normImpl();
+ return min_max_norm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public max_norm createmax_norm() {
+ max_normImpl max_norm = new max_normImpl();
+ return max_norm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public non_neg createnon_neg() {
+ non_negImpl non_neg = new non_negImpl();
+ return non_neg;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public radial_constraint createradial_constraint() {
+ radial_constraintImpl radial_constraint = new radial_constraintImpl();
+ return radial_constraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public unit_norm createunit_norm() {
+ unit_normImpl unit_norm = new unit_normImpl();
+ return unit_norm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Layer_weight_constraintsPackage getLayer_weight_constraintsPackage() {
+ return (Layer_weight_constraintsPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Layer_weight_constraintsPackage getPackage() {
+ return Layer_weight_constraintsPackage.eINSTANCE;
+ }
+
+} //Layer_weight_constraintsFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/Layer_weight_constraintsPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/Layer_weight_constraintsPackageImpl.java
new file mode 100644
index 0000000..c746295
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/Layer_weight_constraintsPackageImpl.java
@@ -0,0 +1,566 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.NormWithMaxValue;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.constraints;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.max_norm;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.min_max_norm;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.non_neg;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.norm;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.radial_constraint;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.unit_norm;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Layer_weight_constraintsPackageImpl extends EPackageImpl implements Layer_weight_constraintsPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass min_max_normEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass normWithMaxValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass normEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass max_normEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass non_negEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass radial_constraintEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass unit_normEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass constraintsEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Layer_weight_constraintsPackageImpl() {
+ super(eNS_URI, Layer_weight_constraintsFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Layer_weight_constraintsPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Layer_weight_constraintsPackage init() {
+ if (isInited) return (Layer_weight_constraintsPackage)EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredLayer_weight_constraintsPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = registeredLayer_weight_constraintsPackage instanceof Layer_weight_constraintsPackageImpl ? (Layer_weight_constraintsPackageImpl)registeredLayer_weight_constraintsPackage : new Layer_weight_constraintsPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theLayer_weight_constraintsPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theLayer_weight_constraintsPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Layer_weight_constraintsPackage.eNS_URI, theLayer_weight_constraintsPackage);
+ return theLayer_weight_constraintsPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getmin_max_norm() {
+ return min_max_normEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getmin_max_norm_Min_value() {
+ return (EAttribute)min_max_normEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getmin_max_norm_Rate() {
+ return (EAttribute)min_max_normEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getNormWithMaxValue() {
+ return normWithMaxValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getNormWithMaxValue_Max_value() {
+ return (EAttribute)normWithMaxValueEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getnorm() {
+ return normEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getnorm_Axis() {
+ return (EAttribute)normEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getmax_norm() {
+ return max_normEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getnon_neg() {
+ return non_negEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getradial_constraint() {
+ return radial_constraintEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getunit_norm() {
+ return unit_normEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getconstraints() {
+ return constraintsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Layer_weight_constraintsFactory getLayer_weight_constraintsFactory() {
+ return (Layer_weight_constraintsFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ min_max_normEClass = createEClass(MIN_MAX_NORM);
+ createEAttribute(min_max_normEClass, MIN_MAX_NORM__MIN_VALUE);
+ createEAttribute(min_max_normEClass, MIN_MAX_NORM__RATE);
+
+ normWithMaxValueEClass = createEClass(NORM_WITH_MAX_VALUE);
+ createEAttribute(normWithMaxValueEClass, NORM_WITH_MAX_VALUE__MAX_VALUE);
+
+ normEClass = createEClass(NORM);
+ createEAttribute(normEClass, NORM__AXIS);
+
+ max_normEClass = createEClass(MAX_NORM);
+
+ non_negEClass = createEClass(NON_NEG);
+
+ radial_constraintEClass = createEClass(RADIAL_CONSTRAINT);
+
+ unit_normEClass = createEClass(UNIT_NORM);
+
+ constraintsEClass = createEClass(CONSTRAINTS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ min_max_normEClass.getESuperTypes().add(this.getNormWithMaxValue());
+ normWithMaxValueEClass.getESuperTypes().add(this.getnorm());
+ normEClass.getESuperTypes().add(this.getconstraints());
+ max_normEClass.getESuperTypes().add(this.getNormWithMaxValue());
+ non_negEClass.getESuperTypes().add(this.getconstraints());
+ radial_constraintEClass.getESuperTypes().add(this.getconstraints());
+ unit_normEClass.getESuperTypes().add(this.getnorm());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(min_max_normEClass, min_max_norm.class, "min_max_norm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getmin_max_norm_Min_value(), theTypesPackage.getReal(), "min_value", null, 1, 1, min_max_norm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getmin_max_norm_Rate(), theTypesPackage.getReal(), "rate", null, 1, 1, min_max_norm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(normWithMaxValueEClass, NormWithMaxValue.class, "NormWithMaxValue", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getNormWithMaxValue_Max_value(), theTypesPackage.getReal(), "max_value", null, 1, 1, NormWithMaxValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(normEClass, norm.class, "norm", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getnorm_Axis(), theTypesPackage.getInteger(), "axis", null, 1, -1, norm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(max_normEClass, max_norm.class, "max_norm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(non_negEClass, non_neg.class, "non_neg", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(radial_constraintEClass, radial_constraint.class, "radial_constraint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(unit_normEClass, unit_norm.class, "unit_norm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(constraintsEClass, constraints.class, "constraints", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ }
+
+} //Layer_weight_constraintsPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/NormWithMaxValueImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/NormWithMaxValueImpl.java
new file mode 100644
index 0000000..1d002f1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/NormWithMaxValueImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.NormWithMaxValue;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Norm With Max Value</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.NormWithMaxValueImpl#getMax_value <em>Max value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class NormWithMaxValueImpl extends normImpl implements NormWithMaxValue {
+ /**
+ * The default value of the '{@link #getMax_value() <em>Max value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMax_value()
+ * @generated
+ * @ordered
+ */
+ protected static final double MAX_VALUE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getMax_value() <em>Max value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMax_value()
+ * @generated
+ * @ordered
+ */
+ protected double max_value = MAX_VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NormWithMaxValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_constraintsPackage.Literals.NORM_WITH_MAX_VALUE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getMax_value() {
+ return max_value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMax_value(double newMax_value) {
+ double oldMax_value = max_value;
+ max_value = newMax_value;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_constraintsPackage.NORM_WITH_MAX_VALUE__MAX_VALUE, oldMax_value, max_value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Layer_weight_constraintsPackage.NORM_WITH_MAX_VALUE__MAX_VALUE:
+ return getMax_value();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Layer_weight_constraintsPackage.NORM_WITH_MAX_VALUE__MAX_VALUE:
+ setMax_value((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Layer_weight_constraintsPackage.NORM_WITH_MAX_VALUE__MAX_VALUE:
+ setMax_value(MAX_VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Layer_weight_constraintsPackage.NORM_WITH_MAX_VALUE__MAX_VALUE:
+ return max_value != MAX_VALUE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (max_value: "); //$NON-NLS-1$
+ result.append(max_value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //NormWithMaxValueImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/constraintsImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/constraintsImpl.java
new file mode 100644
index 0000000..92e146b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/constraintsImpl.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.constraints;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>constraints</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class constraintsImpl extends MinimalEObjectImpl.Container implements constraints {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected constraintsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_constraintsPackage.Literals.CONSTRAINTS;
+ }
+
+} //constraintsImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/max_normImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/max_normImpl.java
new file mode 100644
index 0000000..d2b4d43
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/max_normImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.max_norm;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>max norm</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class max_normImpl extends NormWithMaxValueImpl implements max_norm {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected max_normImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_constraintsPackage.Literals.MAX_NORM;
+ }
+
+} //max_normImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/min_max_normImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/min_max_normImpl.java
new file mode 100644
index 0000000..d14d552
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/min_max_normImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.min_max_norm;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>min max norm</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.min_max_normImpl#getMin_value <em>Min value</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.min_max_normImpl#getRate <em>Rate</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class min_max_normImpl extends NormWithMaxValueImpl implements min_max_norm {
+ /**
+ * The default value of the '{@link #getMin_value() <em>Min value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMin_value()
+ * @generated
+ * @ordered
+ */
+ protected static final double MIN_VALUE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getMin_value() <em>Min value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMin_value()
+ * @generated
+ * @ordered
+ */
+ protected double min_value = MIN_VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRate() <em>Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRate()
+ * @generated
+ * @ordered
+ */
+ protected static final double RATE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getRate() <em>Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRate()
+ * @generated
+ * @ordered
+ */
+ protected double rate = RATE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected min_max_normImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_constraintsPackage.Literals.MIN_MAX_NORM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getMin_value() {
+ return min_value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMin_value(double newMin_value) {
+ double oldMin_value = min_value;
+ min_value = newMin_value;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_constraintsPackage.MIN_MAX_NORM__MIN_VALUE, oldMin_value, min_value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getRate() {
+ return rate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setRate(double newRate) {
+ double oldRate = rate;
+ rate = newRate;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_constraintsPackage.MIN_MAX_NORM__RATE, oldRate, rate));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Layer_weight_constraintsPackage.MIN_MAX_NORM__MIN_VALUE:
+ return getMin_value();
+ case Layer_weight_constraintsPackage.MIN_MAX_NORM__RATE:
+ return getRate();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Layer_weight_constraintsPackage.MIN_MAX_NORM__MIN_VALUE:
+ setMin_value((Double)newValue);
+ return;
+ case Layer_weight_constraintsPackage.MIN_MAX_NORM__RATE:
+ setRate((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Layer_weight_constraintsPackage.MIN_MAX_NORM__MIN_VALUE:
+ setMin_value(MIN_VALUE_EDEFAULT);
+ return;
+ case Layer_weight_constraintsPackage.MIN_MAX_NORM__RATE:
+ setRate(RATE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Layer_weight_constraintsPackage.MIN_MAX_NORM__MIN_VALUE:
+ return min_value != MIN_VALUE_EDEFAULT;
+ case Layer_weight_constraintsPackage.MIN_MAX_NORM__RATE:
+ return rate != RATE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (min_value: "); //$NON-NLS-1$
+ result.append(min_value);
+ result.append(", rate: "); //$NON-NLS-1$
+ result.append(rate);
+ result.append(')');
+ return result.toString();
+ }
+
+} //min_max_normImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/non_negImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/non_negImpl.java
new file mode 100644
index 0000000..258f976
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/non_negImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.non_neg;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>non neg</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class non_negImpl extends constraintsImpl implements non_neg {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected non_negImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_constraintsPackage.Literals.NON_NEG;
+ }
+
+} //non_negImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/normImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/normImpl.java
new file mode 100644
index 0000000..b449801
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/normImpl.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.norm;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>norm</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.normImpl#getAxis <em>Axis</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class normImpl extends constraintsImpl implements norm {
+ /**
+ * The cached value of the '{@link #getAxis() <em>Axis</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAxis()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> axis;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected normImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_constraintsPackage.Literals.NORM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getAxis() {
+ if (axis == null) {
+ axis = new EDataTypeUniqueEList<Integer>(Integer.class, this, Layer_weight_constraintsPackage.NORM__AXIS);
+ }
+ return axis;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Layer_weight_constraintsPackage.NORM__AXIS:
+ return getAxis();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Layer_weight_constraintsPackage.NORM__AXIS:
+ getAxis().clear();
+ getAxis().addAll((Collection<? extends Integer>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Layer_weight_constraintsPackage.NORM__AXIS:
+ getAxis().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Layer_weight_constraintsPackage.NORM__AXIS:
+ return axis != null && !axis.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (axis: "); //$NON-NLS-1$
+ result.append(axis);
+ result.append(')');
+ return result.toString();
+ }
+
+} //normImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/radial_constraintImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/radial_constraintImpl.java
new file mode 100644
index 0000000..cf2348f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/radial_constraintImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.radial_constraint;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>radial constraint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class radial_constraintImpl extends constraintsImpl implements radial_constraint {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected radial_constraintImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_constraintsPackage.Literals.RADIAL_CONSTRAINT;
+ }
+
+} //radial_constraintImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/unit_normImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/unit_normImpl.java
new file mode 100644
index 0000000..4ed8f6f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/impl/unit_normImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.unit_norm;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>unit norm</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class unit_normImpl extends normImpl implements unit_norm {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected unit_normImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_constraintsPackage.Literals.UNIT_NORM;
+ }
+
+} //unit_normImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/max_norm.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/max_norm.java
new file mode 100644
index 0000000..d59b873
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/max_norm.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>max norm</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage#getmax_norm()
+ * @model
+ * @generated
+ */
+public interface max_norm extends NormWithMaxValue {
+} // max_norm
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/min_max_norm.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/min_max_norm.java
new file mode 100644
index 0000000..8904424
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/min_max_norm.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>min max norm</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.min_max_norm#getMin_value <em>Min value</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.min_max_norm#getRate <em>Rate</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage#getmin_max_norm()
+ * @model
+ * @generated
+ */
+public interface min_max_norm extends NormWithMaxValue {
+ /**
+ * Returns the value of the '<em><b>Min value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Min value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Min value</em>' attribute.
+ * @see #setMin_value(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage#getmin_max_norm_Min_value()
+ * @model dataType="org.eclipse.uml2.types.Real" required="true" ordered="false"
+ * @generated
+ */
+ double getMin_value();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.min_max_norm#getMin_value <em>Min value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Min value</em>' attribute.
+ * @see #getMin_value()
+ * @generated
+ */
+ void setMin_value(double value);
+
+ /**
+ * Returns the value of the '<em><b>Rate</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Rate</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Rate</em>' attribute.
+ * @see #setRate(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage#getmin_max_norm_Rate()
+ * @model dataType="org.eclipse.uml2.types.Real" required="true" ordered="false"
+ * @generated
+ */
+ double getRate();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.min_max_norm#getRate <em>Rate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Rate</em>' attribute.
+ * @see #getRate()
+ * @generated
+ */
+ void setRate(double value);
+
+} // min_max_norm
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/non_neg.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/non_neg.java
new file mode 100644
index 0000000..2da9cbc
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/non_neg.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>non neg</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage#getnon_neg()
+ * @model
+ * @generated
+ */
+public interface non_neg extends constraints {
+} // non_neg
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/norm.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/norm.java
new file mode 100644
index 0000000..2be164c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/norm.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>norm</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.norm#getAxis <em>Axis</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage#getnorm()
+ * @model abstract="true"
+ * @generated
+ */
+public interface norm extends constraints {
+ /**
+ * Returns the value of the '<em><b>Axis</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Axis</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Axis</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage#getnorm_Axis()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ EList<Integer> getAxis();
+
+} // norm
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/radial_constraint.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/radial_constraint.java
new file mode 100644
index 0000000..45197c9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/radial_constraint.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>radial constraint</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage#getradial_constraint()
+ * @model
+ * @generated
+ */
+public interface radial_constraint extends constraints {
+} // radial_constraint
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/unit_norm.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/unit_norm.java
new file mode 100644
index 0000000..3d938a9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/unit_norm.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>unit norm</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage#getunit_norm()
+ * @model
+ * @generated
+ */
+public interface unit_norm extends norm {
+} // unit_norm
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/util/Layer_weight_constraintsAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/util/Layer_weight_constraintsAdapterFactory.java
new file mode 100644
index 0000000..5cc9c80
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/util/Layer_weight_constraintsAdapterFactory.java
@@ -0,0 +1,255 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage
+ * @generated
+ */
+public class Layer_weight_constraintsAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Layer_weight_constraintsPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Layer_weight_constraintsAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Layer_weight_constraintsPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Layer_weight_constraintsSwitch<Adapter> modelSwitch =
+ new Layer_weight_constraintsSwitch<Adapter>() {
+ @Override
+ public Adapter casemin_max_norm(min_max_norm object) {
+ return createmin_max_normAdapter();
+ }
+ @Override
+ public Adapter caseNormWithMaxValue(NormWithMaxValue object) {
+ return createNormWithMaxValueAdapter();
+ }
+ @Override
+ public Adapter casenorm(norm object) {
+ return createnormAdapter();
+ }
+ @Override
+ public Adapter casemax_norm(max_norm object) {
+ return createmax_normAdapter();
+ }
+ @Override
+ public Adapter casenon_neg(non_neg object) {
+ return createnon_negAdapter();
+ }
+ @Override
+ public Adapter caseradial_constraint(radial_constraint object) {
+ return createradial_constraintAdapter();
+ }
+ @Override
+ public Adapter caseunit_norm(unit_norm object) {
+ return createunit_normAdapter();
+ }
+ @Override
+ public Adapter caseconstraints(constraints object) {
+ return createconstraintsAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.min_max_norm <em>min max norm</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.min_max_norm
+ * @generated
+ */
+ public Adapter createmin_max_normAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.NormWithMaxValue <em>Norm With Max Value</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.NormWithMaxValue
+ * @generated
+ */
+ public Adapter createNormWithMaxValueAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.norm <em>norm</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.norm
+ * @generated
+ */
+ public Adapter createnormAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.max_norm <em>max norm</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.max_norm
+ * @generated
+ */
+ public Adapter createmax_normAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.non_neg <em>non neg</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.non_neg
+ * @generated
+ */
+ public Adapter createnon_negAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.radial_constraint <em>radial constraint</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.radial_constraint
+ * @generated
+ */
+ public Adapter createradial_constraintAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.unit_norm <em>unit norm</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.unit_norm
+ * @generated
+ */
+ public Adapter createunit_normAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.constraints <em>constraints</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.constraints
+ * @generated
+ */
+ public Adapter createconstraintsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Layer_weight_constraintsAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/util/Layer_weight_constraintsSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/util/Layer_weight_constraintsSwitch.java
new file mode 100644
index 0000000..8f11f62
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_constraints/util/Layer_weight_constraintsSwitch.java
@@ -0,0 +1,279 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage
+ * @generated
+ */
+public class Layer_weight_constraintsSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Layer_weight_constraintsPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Layer_weight_constraintsSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Layer_weight_constraintsPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Layer_weight_constraintsPackage.MIN_MAX_NORM: {
+ min_max_norm min_max_norm = (min_max_norm)theEObject;
+ T result = casemin_max_norm(min_max_norm);
+ if (result == null) result = caseNormWithMaxValue(min_max_norm);
+ if (result == null) result = casenorm(min_max_norm);
+ if (result == null) result = caseconstraints(min_max_norm);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_constraintsPackage.NORM_WITH_MAX_VALUE: {
+ NormWithMaxValue normWithMaxValue = (NormWithMaxValue)theEObject;
+ T result = caseNormWithMaxValue(normWithMaxValue);
+ if (result == null) result = casenorm(normWithMaxValue);
+ if (result == null) result = caseconstraints(normWithMaxValue);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_constraintsPackage.NORM: {
+ norm norm = (norm)theEObject;
+ T result = casenorm(norm);
+ if (result == null) result = caseconstraints(norm);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_constraintsPackage.MAX_NORM: {
+ max_norm max_norm = (max_norm)theEObject;
+ T result = casemax_norm(max_norm);
+ if (result == null) result = caseNormWithMaxValue(max_norm);
+ if (result == null) result = casenorm(max_norm);
+ if (result == null) result = caseconstraints(max_norm);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_constraintsPackage.NON_NEG: {
+ non_neg non_neg = (non_neg)theEObject;
+ T result = casenon_neg(non_neg);
+ if (result == null) result = caseconstraints(non_neg);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_constraintsPackage.RADIAL_CONSTRAINT: {
+ radial_constraint radial_constraint = (radial_constraint)theEObject;
+ T result = caseradial_constraint(radial_constraint);
+ if (result == null) result = caseconstraints(radial_constraint);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_constraintsPackage.UNIT_NORM: {
+ unit_norm unit_norm = (unit_norm)theEObject;
+ T result = caseunit_norm(unit_norm);
+ if (result == null) result = casenorm(unit_norm);
+ if (result == null) result = caseconstraints(unit_norm);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_constraintsPackage.CONSTRAINTS: {
+ constraints constraints = (constraints)theEObject;
+ T result = caseconstraints(constraints);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>min max norm</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>min max norm</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casemin_max_norm(min_max_norm object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Norm With Max Value</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Norm With Max Value</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNormWithMaxValue(NormWithMaxValue object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>norm</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>norm</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casenorm(norm object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>max norm</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>max norm</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casemax_norm(max_norm object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>non neg</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>non neg</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casenon_neg(non_neg object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>radial constraint</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>radial constraint</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseradial_constraint(radial_constraint object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>unit norm</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>unit norm</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseunit_norm(unit_norm object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>constraints</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>constraints</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseconstraints(constraints object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Layer_weight_constraintsSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/Layer_weight_initializersFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/Layer_weight_initializersFactory.java
new file mode 100644
index 0000000..9271bfd
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/Layer_weight_initializersFactory.java
@@ -0,0 +1,141 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage
+ * @generated
+ */
+public interface Layer_weight_initializersFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Layer_weight_initializersFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>random normal</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>random normal</em>'.
+ * @generated
+ */
+ random_normal createrandom_normal();
+
+ /**
+ * Returns a new object of class '<em>random uniform</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>random uniform</em>'.
+ * @generated
+ */
+ random_uniform createrandom_uniform();
+
+ /**
+ * Returns a new object of class '<em>truncated normal</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>truncated normal</em>'.
+ * @generated
+ */
+ truncated_normal createtruncated_normal();
+
+ /**
+ * Returns a new object of class '<em>zeros</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>zeros</em>'.
+ * @generated
+ */
+ zeros createzeros();
+
+ /**
+ * Returns a new object of class '<em>ones</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>ones</em>'.
+ * @generated
+ */
+ ones createones();
+
+ /**
+ * Returns a new object of class '<em>glorot normal</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>glorot normal</em>'.
+ * @generated
+ */
+ glorot_normal createglorot_normal();
+
+ /**
+ * Returns a new object of class '<em>glorot uniform</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>glorot uniform</em>'.
+ * @generated
+ */
+ glorot_uniform createglorot_uniform();
+
+ /**
+ * Returns a new object of class '<em>identity</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>identity</em>'.
+ * @generated
+ */
+ identity createidentity();
+
+ /**
+ * Returns a new object of class '<em>orthogonal</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>orthogonal</em>'.
+ * @generated
+ */
+ orthogonal createorthogonal();
+
+ /**
+ * Returns a new object of class '<em>constant</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>constant</em>'.
+ * @generated
+ */
+ constant createconstant();
+
+ /**
+ * Returns a new object of class '<em>variance scaling</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>variance scaling</em>'.
+ * @generated
+ */
+ variance_scaling createvariance_scaling();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Layer_weight_initializersPackage getLayer_weight_initializersPackage();
+
+} //Layer_weight_initializersFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/Layer_weight_initializersPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/Layer_weight_initializersPackage.java
new file mode 100644
index 0000000..ac605cc
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/Layer_weight_initializersPackage.java
@@ -0,0 +1,1171 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Layer_weight_initializersPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Layer_weight_initializers"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///AIML/Layer_weight_initializers.ecore"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Layer_weight_initializers"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Layer_weight_initializersPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_seedImpl <em>initializer with seed</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_seedImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getinitializer_with_seed()
+ * @generated
+ */
+ int INITIALIZER_WITH_SEED = 2;
+
+ /**
+ * The feature id for the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INITIALIZER_WITH_SEED__SEED = 0;
+
+ /**
+ * The number of structural features of the '<em>initializer with seed</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INITIALIZER_WITH_SEED_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>initializer with seed</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INITIALIZER_WITH_SEED_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_mean_stddevImpl <em>initializer with mean stddev</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_mean_stddevImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getinitializer_with_mean_stddev()
+ * @generated
+ */
+ int INITIALIZER_WITH_MEAN_STDDEV = 1;
+
+ /**
+ * The feature id for the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INITIALIZER_WITH_MEAN_STDDEV__SEED = INITIALIZER_WITH_SEED__SEED;
+
+ /**
+ * The feature id for the '<em><b>Mean</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INITIALIZER_WITH_MEAN_STDDEV__MEAN = INITIALIZER_WITH_SEED_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Stddev</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INITIALIZER_WITH_MEAN_STDDEV__STDDEV = INITIALIZER_WITH_SEED_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>initializer with mean stddev</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INITIALIZER_WITH_MEAN_STDDEV_FEATURE_COUNT = INITIALIZER_WITH_SEED_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>initializer with mean stddev</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INITIALIZER_WITH_MEAN_STDDEV_OPERATION_COUNT = INITIALIZER_WITH_SEED_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.random_normalImpl <em>random normal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.random_normalImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getrandom_normal()
+ * @generated
+ */
+ int RANDOM_NORMAL = 0;
+
+ /**
+ * The feature id for the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RANDOM_NORMAL__SEED = INITIALIZER_WITH_MEAN_STDDEV__SEED;
+
+ /**
+ * The feature id for the '<em><b>Mean</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RANDOM_NORMAL__MEAN = INITIALIZER_WITH_MEAN_STDDEV__MEAN;
+
+ /**
+ * The feature id for the '<em><b>Stddev</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RANDOM_NORMAL__STDDEV = INITIALIZER_WITH_MEAN_STDDEV__STDDEV;
+
+ /**
+ * The number of structural features of the '<em>random normal</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RANDOM_NORMAL_FEATURE_COUNT = INITIALIZER_WITH_MEAN_STDDEV_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>random normal</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RANDOM_NORMAL_OPERATION_COUNT = INITIALIZER_WITH_MEAN_STDDEV_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.random_uniformImpl <em>random uniform</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.random_uniformImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getrandom_uniform()
+ * @generated
+ */
+ int RANDOM_UNIFORM = 3;
+
+ /**
+ * The feature id for the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RANDOM_UNIFORM__SEED = INITIALIZER_WITH_SEED__SEED;
+
+ /**
+ * The feature id for the '<em><b>Minval</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RANDOM_UNIFORM__MINVAL = INITIALIZER_WITH_SEED_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Maxval</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RANDOM_UNIFORM__MAXVAL = INITIALIZER_WITH_SEED_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>random uniform</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RANDOM_UNIFORM_FEATURE_COUNT = INITIALIZER_WITH_SEED_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>random uniform</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RANDOM_UNIFORM_OPERATION_COUNT = INITIALIZER_WITH_SEED_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.truncated_normalImpl <em>truncated normal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.truncated_normalImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#gettruncated_normal()
+ * @generated
+ */
+ int TRUNCATED_NORMAL = 4;
+
+ /**
+ * The feature id for the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRUNCATED_NORMAL__SEED = INITIALIZER_WITH_MEAN_STDDEV__SEED;
+
+ /**
+ * The feature id for the '<em><b>Mean</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRUNCATED_NORMAL__MEAN = INITIALIZER_WITH_MEAN_STDDEV__MEAN;
+
+ /**
+ * The feature id for the '<em><b>Stddev</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRUNCATED_NORMAL__STDDEV = INITIALIZER_WITH_MEAN_STDDEV__STDDEV;
+
+ /**
+ * The number of structural features of the '<em>truncated normal</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRUNCATED_NORMAL_FEATURE_COUNT = INITIALIZER_WITH_MEAN_STDDEV_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>truncated normal</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRUNCATED_NORMAL_OPERATION_COUNT = INITIALIZER_WITH_MEAN_STDDEV_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.zerosImpl <em>zeros</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.zerosImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getzeros()
+ * @generated
+ */
+ int ZEROS = 5;
+
+ /**
+ * The number of structural features of the '<em>zeros</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZEROS_FEATURE_COUNT = 0;
+
+ /**
+ * The number of operations of the '<em>zeros</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZEROS_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.onesImpl <em>ones</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.onesImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getones()
+ * @generated
+ */
+ int ONES = 6;
+
+ /**
+ * The number of structural features of the '<em>ones</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ONES_FEATURE_COUNT = 0;
+
+ /**
+ * The number of operations of the '<em>ones</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ONES_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.glorot_normalImpl <em>glorot normal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.glorot_normalImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getglorot_normal()
+ * @generated
+ */
+ int GLOROT_NORMAL = 7;
+
+ /**
+ * The feature id for the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GLOROT_NORMAL__SEED = INITIALIZER_WITH_SEED__SEED;
+
+ /**
+ * The number of structural features of the '<em>glorot normal</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GLOROT_NORMAL_FEATURE_COUNT = INITIALIZER_WITH_SEED_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>glorot normal</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GLOROT_NORMAL_OPERATION_COUNT = INITIALIZER_WITH_SEED_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.glorot_uniformImpl <em>glorot uniform</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.glorot_uniformImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getglorot_uniform()
+ * @generated
+ */
+ int GLOROT_UNIFORM = 8;
+
+ /**
+ * The feature id for the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GLOROT_UNIFORM__SEED = INITIALIZER_WITH_SEED__SEED;
+
+ /**
+ * The number of structural features of the '<em>glorot uniform</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GLOROT_UNIFORM_FEATURE_COUNT = INITIALIZER_WITH_SEED_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>glorot uniform</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GLOROT_UNIFORM_OPERATION_COUNT = INITIALIZER_WITH_SEED_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_gainImpl <em>initializer with gain</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_gainImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getinitializer_with_gain()
+ * @generated
+ */
+ int INITIALIZER_WITH_GAIN = 10;
+
+ /**
+ * The feature id for the '<em><b>Gain</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INITIALIZER_WITH_GAIN__GAIN = 0;
+
+ /**
+ * The number of structural features of the '<em>initializer with gain</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INITIALIZER_WITH_GAIN_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>initializer with gain</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INITIALIZER_WITH_GAIN_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.identityImpl <em>identity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.identityImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getidentity()
+ * @generated
+ */
+ int IDENTITY = 9;
+
+ /**
+ * The feature id for the '<em><b>Gain</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDENTITY__GAIN = INITIALIZER_WITH_GAIN__GAIN;
+
+ /**
+ * The number of structural features of the '<em>identity</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDENTITY_FEATURE_COUNT = INITIALIZER_WITH_GAIN_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>identity</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDENTITY_OPERATION_COUNT = INITIALIZER_WITH_GAIN_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.orthogonalImpl <em>orthogonal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.orthogonalImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getorthogonal()
+ * @generated
+ */
+ int ORTHOGONAL = 11;
+
+ /**
+ * The feature id for the '<em><b>Gain</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ORTHOGONAL__GAIN = INITIALIZER_WITH_GAIN__GAIN;
+
+ /**
+ * The feature id for the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ORTHOGONAL__SEED = INITIALIZER_WITH_GAIN_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>orthogonal</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ORTHOGONAL_FEATURE_COUNT = INITIALIZER_WITH_GAIN_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>orthogonal</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ORTHOGONAL_OPERATION_COUNT = INITIALIZER_WITH_GAIN_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.constantImpl <em>constant</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.constantImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getconstant()
+ * @generated
+ */
+ int CONSTANT = 12;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT__VALUE = 0;
+
+ /**
+ * The number of structural features of the '<em>constant</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>constant</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.variance_scalingImpl <em>variance scaling</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.variance_scalingImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getvariance_scaling()
+ * @generated
+ */
+ int VARIANCE_SCALING = 13;
+
+ /**
+ * The feature id for the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIANCE_SCALING__SEED = INITIALIZER_WITH_SEED__SEED;
+
+ /**
+ * The feature id for the '<em><b>Scale</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIANCE_SCALING__SCALE = INITIALIZER_WITH_SEED_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIANCE_SCALING__MODE = INITIALIZER_WITH_SEED_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Distribution</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIANCE_SCALING__DISTRIBUTION = INITIALIZER_WITH_SEED_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>variance scaling</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIANCE_SCALING_FEATURE_COUNT = INITIALIZER_WITH_SEED_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the '<em>variance scaling</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VARIANCE_SCALING_OPERATION_COUNT = INITIALIZER_WITH_SEED_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_normal <em>random normal</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>random normal</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_normal
+ * @generated
+ */
+ EClass getrandom_normal();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_mean_stddev <em>initializer with mean stddev</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>initializer with mean stddev</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_mean_stddev
+ * @generated
+ */
+ EClass getinitializer_with_mean_stddev();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_mean_stddev#getMean <em>Mean</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Mean</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_mean_stddev#getMean()
+ * @see #getinitializer_with_mean_stddev()
+ * @generated
+ */
+ EAttribute getinitializer_with_mean_stddev_Mean();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_mean_stddev#getStddev <em>Stddev</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Stddev</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_mean_stddev#getStddev()
+ * @see #getinitializer_with_mean_stddev()
+ * @generated
+ */
+ EAttribute getinitializer_with_mean_stddev_Stddev();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_seed <em>initializer with seed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>initializer with seed</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_seed
+ * @generated
+ */
+ EClass getinitializer_with_seed();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_seed#getSeed <em>Seed</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Seed</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_seed#getSeed()
+ * @see #getinitializer_with_seed()
+ * @generated
+ */
+ EAttribute getinitializer_with_seed_Seed();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_uniform <em>random uniform</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>random uniform</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_uniform
+ * @generated
+ */
+ EClass getrandom_uniform();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_uniform#getMinval <em>Minval</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Minval</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_uniform#getMinval()
+ * @see #getrandom_uniform()
+ * @generated
+ */
+ EAttribute getrandom_uniform_Minval();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_uniform#getMaxval <em>Maxval</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Maxval</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_uniform#getMaxval()
+ * @see #getrandom_uniform()
+ * @generated
+ */
+ EAttribute getrandom_uniform_Maxval();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.truncated_normal <em>truncated normal</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>truncated normal</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.truncated_normal
+ * @generated
+ */
+ EClass gettruncated_normal();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.zeros <em>zeros</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>zeros</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.zeros
+ * @generated
+ */
+ EClass getzeros();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.ones <em>ones</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>ones</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.ones
+ * @generated
+ */
+ EClass getones();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.glorot_normal <em>glorot normal</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>glorot normal</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.glorot_normal
+ * @generated
+ */
+ EClass getglorot_normal();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.glorot_uniform <em>glorot uniform</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>glorot uniform</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.glorot_uniform
+ * @generated
+ */
+ EClass getglorot_uniform();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.identity <em>identity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>identity</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.identity
+ * @generated
+ */
+ EClass getidentity();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_gain <em>initializer with gain</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>initializer with gain</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_gain
+ * @generated
+ */
+ EClass getinitializer_with_gain();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_gain#getGain <em>Gain</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Gain</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_gain#getGain()
+ * @see #getinitializer_with_gain()
+ * @generated
+ */
+ EAttribute getinitializer_with_gain_Gain();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.orthogonal <em>orthogonal</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>orthogonal</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.orthogonal
+ * @generated
+ */
+ EClass getorthogonal();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.constant <em>constant</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>constant</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.constant
+ * @generated
+ */
+ EClass getconstant();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.constant#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.constant#getValue()
+ * @see #getconstant()
+ * @generated
+ */
+ EAttribute getconstant_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling <em>variance scaling</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>variance scaling</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling
+ * @generated
+ */
+ EClass getvariance_scaling();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling#getScale <em>Scale</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Scale</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling#getScale()
+ * @see #getvariance_scaling()
+ * @generated
+ */
+ EAttribute getvariance_scaling_Scale();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling#getMode <em>Mode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Mode</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling#getMode()
+ * @see #getvariance_scaling()
+ * @generated
+ */
+ EAttribute getvariance_scaling_Mode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling#getDistribution <em>Distribution</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Distribution</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling#getDistribution()
+ * @see #getvariance_scaling()
+ * @generated
+ */
+ EAttribute getvariance_scaling_Distribution();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Layer_weight_initializersFactory getLayer_weight_initializersFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.random_normalImpl <em>random normal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.random_normalImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getrandom_normal()
+ * @generated
+ */
+ EClass RANDOM_NORMAL = eINSTANCE.getrandom_normal();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_mean_stddevImpl <em>initializer with mean stddev</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_mean_stddevImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getinitializer_with_mean_stddev()
+ * @generated
+ */
+ EClass INITIALIZER_WITH_MEAN_STDDEV = eINSTANCE.getinitializer_with_mean_stddev();
+
+ /**
+ * The meta object literal for the '<em><b>Mean</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INITIALIZER_WITH_MEAN_STDDEV__MEAN = eINSTANCE.getinitializer_with_mean_stddev_Mean();
+
+ /**
+ * The meta object literal for the '<em><b>Stddev</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INITIALIZER_WITH_MEAN_STDDEV__STDDEV = eINSTANCE.getinitializer_with_mean_stddev_Stddev();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_seedImpl <em>initializer with seed</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_seedImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getinitializer_with_seed()
+ * @generated
+ */
+ EClass INITIALIZER_WITH_SEED = eINSTANCE.getinitializer_with_seed();
+
+ /**
+ * The meta object literal for the '<em><b>Seed</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INITIALIZER_WITH_SEED__SEED = eINSTANCE.getinitializer_with_seed_Seed();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.random_uniformImpl <em>random uniform</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.random_uniformImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getrandom_uniform()
+ * @generated
+ */
+ EClass RANDOM_UNIFORM = eINSTANCE.getrandom_uniform();
+
+ /**
+ * The meta object literal for the '<em><b>Minval</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RANDOM_UNIFORM__MINVAL = eINSTANCE.getrandom_uniform_Minval();
+
+ /**
+ * The meta object literal for the '<em><b>Maxval</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RANDOM_UNIFORM__MAXVAL = eINSTANCE.getrandom_uniform_Maxval();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.truncated_normalImpl <em>truncated normal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.truncated_normalImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#gettruncated_normal()
+ * @generated
+ */
+ EClass TRUNCATED_NORMAL = eINSTANCE.gettruncated_normal();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.zerosImpl <em>zeros</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.zerosImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getzeros()
+ * @generated
+ */
+ EClass ZEROS = eINSTANCE.getzeros();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.onesImpl <em>ones</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.onesImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getones()
+ * @generated
+ */
+ EClass ONES = eINSTANCE.getones();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.glorot_normalImpl <em>glorot normal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.glorot_normalImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getglorot_normal()
+ * @generated
+ */
+ EClass GLOROT_NORMAL = eINSTANCE.getglorot_normal();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.glorot_uniformImpl <em>glorot uniform</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.glorot_uniformImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getglorot_uniform()
+ * @generated
+ */
+ EClass GLOROT_UNIFORM = eINSTANCE.getglorot_uniform();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.identityImpl <em>identity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.identityImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getidentity()
+ * @generated
+ */
+ EClass IDENTITY = eINSTANCE.getidentity();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_gainImpl <em>initializer with gain</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_gainImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getinitializer_with_gain()
+ * @generated
+ */
+ EClass INITIALIZER_WITH_GAIN = eINSTANCE.getinitializer_with_gain();
+
+ /**
+ * The meta object literal for the '<em><b>Gain</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute INITIALIZER_WITH_GAIN__GAIN = eINSTANCE.getinitializer_with_gain_Gain();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.orthogonalImpl <em>orthogonal</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.orthogonalImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getorthogonal()
+ * @generated
+ */
+ EClass ORTHOGONAL = eINSTANCE.getorthogonal();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.constantImpl <em>constant</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.constantImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getconstant()
+ * @generated
+ */
+ EClass CONSTANT = eINSTANCE.getconstant();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CONSTANT__VALUE = eINSTANCE.getconstant_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.variance_scalingImpl <em>variance scaling</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.variance_scalingImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl#getvariance_scaling()
+ * @generated
+ */
+ EClass VARIANCE_SCALING = eINSTANCE.getvariance_scaling();
+
+ /**
+ * The meta object literal for the '<em><b>Scale</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VARIANCE_SCALING__SCALE = eINSTANCE.getvariance_scaling_Scale();
+
+ /**
+ * The meta object literal for the '<em><b>Mode</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VARIANCE_SCALING__MODE = eINSTANCE.getvariance_scaling_Mode();
+
+ /**
+ * The meta object literal for the '<em><b>Distribution</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VARIANCE_SCALING__DISTRIBUTION = eINSTANCE.getvariance_scaling_Distribution();
+
+ }
+
+} //Layer_weight_initializersPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/constant.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/constant.java
new file mode 100644
index 0000000..94bd899
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/constant.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>constant</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.constant#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getconstant()
+ * @model
+ * @generated
+ */
+public interface constant extends EObject {
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getconstant_Value()
+ * @model dataType="org.eclipse.uml2.types.Real" required="true" ordered="false"
+ * @generated
+ */
+ double getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.constant#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(double value);
+
+} // constant
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/glorot_normal.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/glorot_normal.java
new file mode 100644
index 0000000..4649319
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/glorot_normal.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>glorot normal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getglorot_normal()
+ * @model
+ * @generated
+ */
+public interface glorot_normal extends initializer_with_seed {
+} // glorot_normal
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/glorot_uniform.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/glorot_uniform.java
new file mode 100644
index 0000000..bf7fac4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/glorot_uniform.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>glorot uniform</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getglorot_uniform()
+ * @model
+ * @generated
+ */
+public interface glorot_uniform extends initializer_with_seed {
+} // glorot_uniform
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/identity.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/identity.java
new file mode 100644
index 0000000..0441baa
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/identity.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>identity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getidentity()
+ * @model
+ * @generated
+ */
+public interface identity extends initializer_with_gain {
+} // identity
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/Layer_weight_initializersFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/Layer_weight_initializersFactoryImpl.java
new file mode 100644
index 0000000..9fb5ecb
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/Layer_weight_initializersFactoryImpl.java
@@ -0,0 +1,226 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Layer_weight_initializersFactoryImpl extends EFactoryImpl implements Layer_weight_initializersFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Layer_weight_initializersFactory init() {
+ try {
+ Layer_weight_initializersFactory theLayer_weight_initializersFactory = (Layer_weight_initializersFactory)EPackage.Registry.INSTANCE.getEFactory(Layer_weight_initializersPackage.eNS_URI);
+ if (theLayer_weight_initializersFactory != null) {
+ return theLayer_weight_initializersFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Layer_weight_initializersFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Layer_weight_initializersFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Layer_weight_initializersPackage.RANDOM_NORMAL: return createrandom_normal();
+ case Layer_weight_initializersPackage.RANDOM_UNIFORM: return createrandom_uniform();
+ case Layer_weight_initializersPackage.TRUNCATED_NORMAL: return createtruncated_normal();
+ case Layer_weight_initializersPackage.ZEROS: return createzeros();
+ case Layer_weight_initializersPackage.ONES: return createones();
+ case Layer_weight_initializersPackage.GLOROT_NORMAL: return createglorot_normal();
+ case Layer_weight_initializersPackage.GLOROT_UNIFORM: return createglorot_uniform();
+ case Layer_weight_initializersPackage.IDENTITY: return createidentity();
+ case Layer_weight_initializersPackage.ORTHOGONAL: return createorthogonal();
+ case Layer_weight_initializersPackage.CONSTANT: return createconstant();
+ case Layer_weight_initializersPackage.VARIANCE_SCALING: return createvariance_scaling();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public random_normal createrandom_normal() {
+ random_normalImpl random_normal = new random_normalImpl();
+ return random_normal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public random_uniform createrandom_uniform() {
+ random_uniformImpl random_uniform = new random_uniformImpl();
+ return random_uniform;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public truncated_normal createtruncated_normal() {
+ truncated_normalImpl truncated_normal = new truncated_normalImpl();
+ return truncated_normal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public zeros createzeros() {
+ zerosImpl zeros = new zerosImpl();
+ return zeros;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ones createones() {
+ onesImpl ones = new onesImpl();
+ return ones;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public glorot_normal createglorot_normal() {
+ glorot_normalImpl glorot_normal = new glorot_normalImpl();
+ return glorot_normal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public glorot_uniform createglorot_uniform() {
+ glorot_uniformImpl glorot_uniform = new glorot_uniformImpl();
+ return glorot_uniform;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public identity createidentity() {
+ identityImpl identity = new identityImpl();
+ return identity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public orthogonal createorthogonal() {
+ orthogonalImpl orthogonal = new orthogonalImpl();
+ return orthogonal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public constant createconstant() {
+ constantImpl constant = new constantImpl();
+ return constant;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public variance_scaling createvariance_scaling() {
+ variance_scalingImpl variance_scaling = new variance_scalingImpl();
+ return variance_scaling;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Layer_weight_initializersPackage getLayer_weight_initializersPackage() {
+ return (Layer_weight_initializersPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Layer_weight_initializersPackage getPackage() {
+ return Layer_weight_initializersPackage.eINSTANCE;
+ }
+
+} //Layer_weight_initializersFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/Layer_weight_initializersPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/Layer_weight_initializersPackageImpl.java
new file mode 100644
index 0000000..683ebb9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/Layer_weight_initializersPackageImpl.java
@@ -0,0 +1,773 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.constant;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.glorot_normal;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.glorot_uniform;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.identity;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_gain;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_mean_stddev;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_seed;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.ones;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.orthogonal;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_normal;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_uniform;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.truncated_normal;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.zeros;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Layer_weight_initializersPackageImpl extends EPackageImpl implements Layer_weight_initializersPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass random_normalEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass initializer_with_mean_stddevEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass initializer_with_seedEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass random_uniformEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass truncated_normalEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass zerosEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass onesEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass glorot_normalEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass glorot_uniformEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass identityEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass initializer_with_gainEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass orthogonalEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass constantEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass variance_scalingEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Layer_weight_initializersPackageImpl() {
+ super(eNS_URI, Layer_weight_initializersFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Layer_weight_initializersPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Layer_weight_initializersPackage init() {
+ if (isInited) return (Layer_weight_initializersPackage)EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredLayer_weight_initializersPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = registeredLayer_weight_initializersPackage instanceof Layer_weight_initializersPackageImpl ? (Layer_weight_initializersPackageImpl)registeredLayer_weight_initializersPackage : new Layer_weight_initializersPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theLayer_weight_initializersPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theLayer_weight_initializersPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theLayer_weight_initializersPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Layer_weight_initializersPackage.eNS_URI, theLayer_weight_initializersPackage);
+ return theLayer_weight_initializersPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getrandom_normal() {
+ return random_normalEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getinitializer_with_mean_stddev() {
+ return initializer_with_mean_stddevEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getinitializer_with_mean_stddev_Mean() {
+ return (EAttribute)initializer_with_mean_stddevEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getinitializer_with_mean_stddev_Stddev() {
+ return (EAttribute)initializer_with_mean_stddevEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getinitializer_with_seed() {
+ return initializer_with_seedEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getinitializer_with_seed_Seed() {
+ return (EAttribute)initializer_with_seedEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getrandom_uniform() {
+ return random_uniformEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getrandom_uniform_Minval() {
+ return (EAttribute)random_uniformEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getrandom_uniform_Maxval() {
+ return (EAttribute)random_uniformEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass gettruncated_normal() {
+ return truncated_normalEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getzeros() {
+ return zerosEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getones() {
+ return onesEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getglorot_normal() {
+ return glorot_normalEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getglorot_uniform() {
+ return glorot_uniformEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getidentity() {
+ return identityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getinitializer_with_gain() {
+ return initializer_with_gainEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getinitializer_with_gain_Gain() {
+ return (EAttribute)initializer_with_gainEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getorthogonal() {
+ return orthogonalEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getconstant() {
+ return constantEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getconstant_Value() {
+ return (EAttribute)constantEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getvariance_scaling() {
+ return variance_scalingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getvariance_scaling_Scale() {
+ return (EAttribute)variance_scalingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getvariance_scaling_Mode() {
+ return (EAttribute)variance_scalingEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getvariance_scaling_Distribution() {
+ return (EAttribute)variance_scalingEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Layer_weight_initializersFactory getLayer_weight_initializersFactory() {
+ return (Layer_weight_initializersFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ random_normalEClass = createEClass(RANDOM_NORMAL);
+
+ initializer_with_mean_stddevEClass = createEClass(INITIALIZER_WITH_MEAN_STDDEV);
+ createEAttribute(initializer_with_mean_stddevEClass, INITIALIZER_WITH_MEAN_STDDEV__MEAN);
+ createEAttribute(initializer_with_mean_stddevEClass, INITIALIZER_WITH_MEAN_STDDEV__STDDEV);
+
+ initializer_with_seedEClass = createEClass(INITIALIZER_WITH_SEED);
+ createEAttribute(initializer_with_seedEClass, INITIALIZER_WITH_SEED__SEED);
+
+ random_uniformEClass = createEClass(RANDOM_UNIFORM);
+ createEAttribute(random_uniformEClass, RANDOM_UNIFORM__MINVAL);
+ createEAttribute(random_uniformEClass, RANDOM_UNIFORM__MAXVAL);
+
+ truncated_normalEClass = createEClass(TRUNCATED_NORMAL);
+
+ zerosEClass = createEClass(ZEROS);
+
+ onesEClass = createEClass(ONES);
+
+ glorot_normalEClass = createEClass(GLOROT_NORMAL);
+
+ glorot_uniformEClass = createEClass(GLOROT_UNIFORM);
+
+ identityEClass = createEClass(IDENTITY);
+
+ initializer_with_gainEClass = createEClass(INITIALIZER_WITH_GAIN);
+ createEAttribute(initializer_with_gainEClass, INITIALIZER_WITH_GAIN__GAIN);
+
+ orthogonalEClass = createEClass(ORTHOGONAL);
+
+ constantEClass = createEClass(CONSTANT);
+ createEAttribute(constantEClass, CONSTANT__VALUE);
+
+ variance_scalingEClass = createEClass(VARIANCE_SCALING);
+ createEAttribute(variance_scalingEClass, VARIANCE_SCALING__SCALE);
+ createEAttribute(variance_scalingEClass, VARIANCE_SCALING__MODE);
+ createEAttribute(variance_scalingEClass, VARIANCE_SCALING__DISTRIBUTION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ random_normalEClass.getESuperTypes().add(this.getinitializer_with_mean_stddev());
+ initializer_with_mean_stddevEClass.getESuperTypes().add(this.getinitializer_with_seed());
+ random_uniformEClass.getESuperTypes().add(this.getinitializer_with_seed());
+ truncated_normalEClass.getESuperTypes().add(this.getinitializer_with_mean_stddev());
+ glorot_normalEClass.getESuperTypes().add(this.getinitializer_with_seed());
+ glorot_uniformEClass.getESuperTypes().add(this.getinitializer_with_seed());
+ identityEClass.getESuperTypes().add(this.getinitializer_with_gain());
+ orthogonalEClass.getESuperTypes().add(this.getinitializer_with_gain());
+ orthogonalEClass.getESuperTypes().add(this.getinitializer_with_seed());
+ variance_scalingEClass.getESuperTypes().add(this.getinitializer_with_seed());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(random_normalEClass, random_normal.class, "random_normal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(initializer_with_mean_stddevEClass, initializer_with_mean_stddev.class, "initializer_with_mean_stddev", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getinitializer_with_mean_stddev_Mean(), theTypesPackage.getReal(), "mean", null, 1, 1, initializer_with_mean_stddev.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getinitializer_with_mean_stddev_Stddev(), theTypesPackage.getReal(), "stddev", null, 1, 1, initializer_with_mean_stddev.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(initializer_with_seedEClass, initializer_with_seed.class, "initializer_with_seed", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getinitializer_with_seed_Seed(), theTypesPackage.getInteger(), "seed", null, 1, 1, initializer_with_seed.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(random_uniformEClass, random_uniform.class, "random_uniform", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getrandom_uniform_Minval(), theTypesPackage.getReal(), "minval", null, 1, 1, random_uniform.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getrandom_uniform_Maxval(), theTypesPackage.getReal(), "maxval", null, 1, 1, random_uniform.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(truncated_normalEClass, truncated_normal.class, "truncated_normal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(zerosEClass, zeros.class, "zeros", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(onesEClass, ones.class, "ones", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(glorot_normalEClass, glorot_normal.class, "glorot_normal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(glorot_uniformEClass, glorot_uniform.class, "glorot_uniform", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(identityEClass, identity.class, "identity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(initializer_with_gainEClass, initializer_with_gain.class, "initializer_with_gain", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getinitializer_with_gain_Gain(), theTypesPackage.getReal(), "gain", null, 1, 1, initializer_with_gain.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(orthogonalEClass, orthogonal.class, "orthogonal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(constantEClass, constant.class, "constant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getconstant_Value(), theTypesPackage.getReal(), "value", null, 1, 1, constant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(variance_scalingEClass, variance_scaling.class, "variance_scaling", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getvariance_scaling_Scale(), theTypesPackage.getReal(), "scale", null, 1, 1, variance_scaling.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getvariance_scaling_Mode(), theTypesPackage.getString(), "mode", null, 1, 1, variance_scaling.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getvariance_scaling_Distribution(), theTypesPackage.getString(), "distribution", null, 1, 1, variance_scaling.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ }
+
+} //Layer_weight_initializersPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/constantImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/constantImpl.java
new file mode 100644
index 0000000..052421f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/constantImpl.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.constant;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>constant</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.constantImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class constantImpl extends MinimalEObjectImpl.Container implements constant {
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final double VALUE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected double value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected constantImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_initializersPackage.Literals.CONSTANT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setValue(double newValue) {
+ double oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_initializersPackage.CONSTANT__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.CONSTANT__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.CONSTANT__VALUE:
+ setValue((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.CONSTANT__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.CONSTANT__VALUE:
+ return value != VALUE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (value: "); //$NON-NLS-1$
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //constantImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/glorot_normalImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/glorot_normalImpl.java
new file mode 100644
index 0000000..d2cf3f7
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/glorot_normalImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.glorot_normal;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>glorot normal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class glorot_normalImpl extends initializer_with_seedImpl implements glorot_normal {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected glorot_normalImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_initializersPackage.Literals.GLOROT_NORMAL;
+ }
+
+} //glorot_normalImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/glorot_uniformImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/glorot_uniformImpl.java
new file mode 100644
index 0000000..70b7f23
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/glorot_uniformImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.glorot_uniform;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>glorot uniform</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class glorot_uniformImpl extends initializer_with_seedImpl implements glorot_uniform {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected glorot_uniformImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_initializersPackage.Literals.GLOROT_UNIFORM;
+ }
+
+} //glorot_uniformImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/identityImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/identityImpl.java
new file mode 100644
index 0000000..cc18810
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/identityImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.identity;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>identity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class identityImpl extends initializer_with_gainImpl implements identity {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected identityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_initializersPackage.Literals.IDENTITY;
+ }
+
+} //identityImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/initializer_with_gainImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/initializer_with_gainImpl.java
new file mode 100644
index 0000000..c36ef90
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/initializer_with_gainImpl.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_gain;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>initializer with gain</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_gainImpl#getGain <em>Gain</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class initializer_with_gainImpl extends MinimalEObjectImpl.Container implements initializer_with_gain {
+ /**
+ * The default value of the '{@link #getGain() <em>Gain</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGain()
+ * @generated
+ * @ordered
+ */
+ protected static final double GAIN_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getGain() <em>Gain</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGain()
+ * @generated
+ * @ordered
+ */
+ protected double gain = GAIN_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected initializer_with_gainImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_initializersPackage.Literals.INITIALIZER_WITH_GAIN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getGain() {
+ return gain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setGain(double newGain) {
+ double oldGain = gain;
+ gain = newGain;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_initializersPackage.INITIALIZER_WITH_GAIN__GAIN, oldGain, gain));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_GAIN__GAIN:
+ return getGain();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_GAIN__GAIN:
+ setGain((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_GAIN__GAIN:
+ setGain(GAIN_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_GAIN__GAIN:
+ return gain != GAIN_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (gain: "); //$NON-NLS-1$
+ result.append(gain);
+ result.append(')');
+ return result.toString();
+ }
+
+} //initializer_with_gainImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/initializer_with_mean_stddevImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/initializer_with_mean_stddevImpl.java
new file mode 100644
index 0000000..315f9df
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/initializer_with_mean_stddevImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_mean_stddev;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>initializer with mean stddev</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_mean_stddevImpl#getMean <em>Mean</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_mean_stddevImpl#getStddev <em>Stddev</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class initializer_with_mean_stddevImpl extends initializer_with_seedImpl implements initializer_with_mean_stddev {
+ /**
+ * The default value of the '{@link #getMean() <em>Mean</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMean()
+ * @generated
+ * @ordered
+ */
+ protected static final double MEAN_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getMean() <em>Mean</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMean()
+ * @generated
+ * @ordered
+ */
+ protected double mean = MEAN_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getStddev() <em>Stddev</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStddev()
+ * @generated
+ * @ordered
+ */
+ protected static final double STDDEV_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getStddev() <em>Stddev</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStddev()
+ * @generated
+ * @ordered
+ */
+ protected double stddev = STDDEV_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected initializer_with_mean_stddevImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_initializersPackage.Literals.INITIALIZER_WITH_MEAN_STDDEV;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getMean() {
+ return mean;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMean(double newMean) {
+ double oldMean = mean;
+ mean = newMean;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_initializersPackage.INITIALIZER_WITH_MEAN_STDDEV__MEAN, oldMean, mean));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getStddev() {
+ return stddev;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setStddev(double newStddev) {
+ double oldStddev = stddev;
+ stddev = newStddev;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_initializersPackage.INITIALIZER_WITH_MEAN_STDDEV__STDDEV, oldStddev, stddev));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_MEAN_STDDEV__MEAN:
+ return getMean();
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_MEAN_STDDEV__STDDEV:
+ return getStddev();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_MEAN_STDDEV__MEAN:
+ setMean((Double)newValue);
+ return;
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_MEAN_STDDEV__STDDEV:
+ setStddev((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_MEAN_STDDEV__MEAN:
+ setMean(MEAN_EDEFAULT);
+ return;
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_MEAN_STDDEV__STDDEV:
+ setStddev(STDDEV_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_MEAN_STDDEV__MEAN:
+ return mean != MEAN_EDEFAULT;
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_MEAN_STDDEV__STDDEV:
+ return stddev != STDDEV_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (mean: "); //$NON-NLS-1$
+ result.append(mean);
+ result.append(", stddev: "); //$NON-NLS-1$
+ result.append(stddev);
+ result.append(')');
+ return result.toString();
+ }
+
+} //initializer_with_mean_stddevImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/initializer_with_seedImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/initializer_with_seedImpl.java
new file mode 100644
index 0000000..3654375
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/initializer_with_seedImpl.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_seed;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>initializer with seed</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.initializer_with_seedImpl#getSeed <em>Seed</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class initializer_with_seedImpl extends MinimalEObjectImpl.Container implements initializer_with_seed {
+ /**
+ * The default value of the '{@link #getSeed() <em>Seed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSeed()
+ * @generated
+ * @ordered
+ */
+ protected static final int SEED_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSeed() <em>Seed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSeed()
+ * @generated
+ * @ordered
+ */
+ protected int seed = SEED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected initializer_with_seedImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_initializersPackage.Literals.INITIALIZER_WITH_SEED;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getSeed() {
+ return seed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSeed(int newSeed) {
+ int oldSeed = seed;
+ seed = newSeed;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_initializersPackage.INITIALIZER_WITH_SEED__SEED, oldSeed, seed));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_SEED__SEED:
+ return getSeed();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_SEED__SEED:
+ setSeed((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_SEED__SEED:
+ setSeed(SEED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_SEED__SEED:
+ return seed != SEED_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (seed: "); //$NON-NLS-1$
+ result.append(seed);
+ result.append(')');
+ return result.toString();
+ }
+
+} //initializer_with_seedImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/onesImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/onesImpl.java
new file mode 100644
index 0000000..c957c65
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/onesImpl.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.ones;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>ones</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class onesImpl extends MinimalEObjectImpl.Container implements ones {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected onesImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_initializersPackage.Literals.ONES;
+ }
+
+} //onesImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/orthogonalImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/orthogonalImpl.java
new file mode 100644
index 0000000..87bd616
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/orthogonalImpl.java
@@ -0,0 +1,206 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_seed;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.orthogonal;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>orthogonal</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.orthogonalImpl#getSeed <em>Seed</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class orthogonalImpl extends initializer_with_gainImpl implements orthogonal {
+ /**
+ * The default value of the '{@link #getSeed() <em>Seed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSeed()
+ * @generated
+ * @ordered
+ */
+ protected static final int SEED_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSeed() <em>Seed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSeed()
+ * @generated
+ * @ordered
+ */
+ protected int seed = SEED_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected orthogonalImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_initializersPackage.Literals.ORTHOGONAL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getSeed() {
+ return seed;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSeed(int newSeed) {
+ int oldSeed = seed;
+ seed = newSeed;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_initializersPackage.ORTHOGONAL__SEED, oldSeed, seed));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.ORTHOGONAL__SEED:
+ return getSeed();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.ORTHOGONAL__SEED:
+ setSeed((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.ORTHOGONAL__SEED:
+ setSeed(SEED_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.ORTHOGONAL__SEED:
+ return seed != SEED_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == initializer_with_seed.class) {
+ switch (derivedFeatureID) {
+ case Layer_weight_initializersPackage.ORTHOGONAL__SEED: return Layer_weight_initializersPackage.INITIALIZER_WITH_SEED__SEED;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == initializer_with_seed.class) {
+ switch (baseFeatureID) {
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_SEED__SEED: return Layer_weight_initializersPackage.ORTHOGONAL__SEED;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (seed: "); //$NON-NLS-1$
+ result.append(seed);
+ result.append(')');
+ return result.toString();
+ }
+
+} //orthogonalImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/random_normalImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/random_normalImpl.java
new file mode 100644
index 0000000..cac151a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/random_normalImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_normal;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>random normal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class random_normalImpl extends initializer_with_mean_stddevImpl implements random_normal {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected random_normalImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_initializersPackage.Literals.RANDOM_NORMAL;
+ }
+
+} //random_normalImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/random_uniformImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/random_uniformImpl.java
new file mode 100644
index 0000000..c7ab8f0
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/random_uniformImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_uniform;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>random uniform</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.random_uniformImpl#getMinval <em>Minval</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.random_uniformImpl#getMaxval <em>Maxval</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class random_uniformImpl extends initializer_with_seedImpl implements random_uniform {
+ /**
+ * The default value of the '{@link #getMinval() <em>Minval</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMinval()
+ * @generated
+ * @ordered
+ */
+ protected static final double MINVAL_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getMinval() <em>Minval</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMinval()
+ * @generated
+ * @ordered
+ */
+ protected double minval = MINVAL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMaxval() <em>Maxval</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMaxval()
+ * @generated
+ * @ordered
+ */
+ protected static final double MAXVAL_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getMaxval() <em>Maxval</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMaxval()
+ * @generated
+ * @ordered
+ */
+ protected double maxval = MAXVAL_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected random_uniformImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_initializersPackage.Literals.RANDOM_UNIFORM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getMinval() {
+ return minval;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMinval(double newMinval) {
+ double oldMinval = minval;
+ minval = newMinval;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_initializersPackage.RANDOM_UNIFORM__MINVAL, oldMinval, minval));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getMaxval() {
+ return maxval;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMaxval(double newMaxval) {
+ double oldMaxval = maxval;
+ maxval = newMaxval;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_initializersPackage.RANDOM_UNIFORM__MAXVAL, oldMaxval, maxval));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.RANDOM_UNIFORM__MINVAL:
+ return getMinval();
+ case Layer_weight_initializersPackage.RANDOM_UNIFORM__MAXVAL:
+ return getMaxval();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.RANDOM_UNIFORM__MINVAL:
+ setMinval((Double)newValue);
+ return;
+ case Layer_weight_initializersPackage.RANDOM_UNIFORM__MAXVAL:
+ setMaxval((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.RANDOM_UNIFORM__MINVAL:
+ setMinval(MINVAL_EDEFAULT);
+ return;
+ case Layer_weight_initializersPackage.RANDOM_UNIFORM__MAXVAL:
+ setMaxval(MAXVAL_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.RANDOM_UNIFORM__MINVAL:
+ return minval != MINVAL_EDEFAULT;
+ case Layer_weight_initializersPackage.RANDOM_UNIFORM__MAXVAL:
+ return maxval != MAXVAL_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (minval: "); //$NON-NLS-1$
+ result.append(minval);
+ result.append(", maxval: "); //$NON-NLS-1$
+ result.append(maxval);
+ result.append(')');
+ return result.toString();
+ }
+
+} //random_uniformImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/truncated_normalImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/truncated_normalImpl.java
new file mode 100644
index 0000000..ff9953c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/truncated_normalImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.truncated_normal;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>truncated normal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class truncated_normalImpl extends initializer_with_mean_stddevImpl implements truncated_normal {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected truncated_normalImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_initializersPackage.Literals.TRUNCATED_NORMAL;
+ }
+
+} //truncated_normalImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/variance_scalingImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/variance_scalingImpl.java
new file mode 100644
index 0000000..cceaa7a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/variance_scalingImpl.java
@@ -0,0 +1,285 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>variance scaling</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.variance_scalingImpl#getScale <em>Scale</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.variance_scalingImpl#getMode <em>Mode</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.variance_scalingImpl#getDistribution <em>Distribution</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class variance_scalingImpl extends initializer_with_seedImpl implements variance_scaling {
+ /**
+ * The default value of the '{@link #getScale() <em>Scale</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getScale()
+ * @generated
+ * @ordered
+ */
+ protected static final double SCALE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getScale() <em>Scale</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getScale()
+ * @generated
+ * @ordered
+ */
+ protected double scale = SCALE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMode() <em>Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMode()
+ * @generated
+ * @ordered
+ */
+ protected static final String MODE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getMode() <em>Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMode()
+ * @generated
+ * @ordered
+ */
+ protected String mode = MODE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDistribution() <em>Distribution</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDistribution()
+ * @generated
+ * @ordered
+ */
+ protected static final String DISTRIBUTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDistribution() <em>Distribution</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDistribution()
+ * @generated
+ * @ordered
+ */
+ protected String distribution = DISTRIBUTION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected variance_scalingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_initializersPackage.Literals.VARIANCE_SCALING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getScale() {
+ return scale;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setScale(double newScale) {
+ double oldScale = scale;
+ scale = newScale;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_initializersPackage.VARIANCE_SCALING__SCALE, oldScale, scale));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getMode() {
+ return mode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMode(String newMode) {
+ String oldMode = mode;
+ mode = newMode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_initializersPackage.VARIANCE_SCALING__MODE, oldMode, mode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getDistribution() {
+ return distribution;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDistribution(String newDistribution) {
+ String oldDistribution = distribution;
+ distribution = newDistribution;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_initializersPackage.VARIANCE_SCALING__DISTRIBUTION, oldDistribution, distribution));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.VARIANCE_SCALING__SCALE:
+ return getScale();
+ case Layer_weight_initializersPackage.VARIANCE_SCALING__MODE:
+ return getMode();
+ case Layer_weight_initializersPackage.VARIANCE_SCALING__DISTRIBUTION:
+ return getDistribution();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.VARIANCE_SCALING__SCALE:
+ setScale((Double)newValue);
+ return;
+ case Layer_weight_initializersPackage.VARIANCE_SCALING__MODE:
+ setMode((String)newValue);
+ return;
+ case Layer_weight_initializersPackage.VARIANCE_SCALING__DISTRIBUTION:
+ setDistribution((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.VARIANCE_SCALING__SCALE:
+ setScale(SCALE_EDEFAULT);
+ return;
+ case Layer_weight_initializersPackage.VARIANCE_SCALING__MODE:
+ setMode(MODE_EDEFAULT);
+ return;
+ case Layer_weight_initializersPackage.VARIANCE_SCALING__DISTRIBUTION:
+ setDistribution(DISTRIBUTION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Layer_weight_initializersPackage.VARIANCE_SCALING__SCALE:
+ return scale != SCALE_EDEFAULT;
+ case Layer_weight_initializersPackage.VARIANCE_SCALING__MODE:
+ return MODE_EDEFAULT == null ? mode != null : !MODE_EDEFAULT.equals(mode);
+ case Layer_weight_initializersPackage.VARIANCE_SCALING__DISTRIBUTION:
+ return DISTRIBUTION_EDEFAULT == null ? distribution != null : !DISTRIBUTION_EDEFAULT.equals(distribution);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (scale: "); //$NON-NLS-1$
+ result.append(scale);
+ result.append(", mode: "); //$NON-NLS-1$
+ result.append(mode);
+ result.append(", distribution: "); //$NON-NLS-1$
+ result.append(distribution);
+ result.append(')');
+ return result.toString();
+ }
+
+} //variance_scalingImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/zerosImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/zerosImpl.java
new file mode 100644
index 0000000..1231fa8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/impl/zerosImpl.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.zeros;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>zeros</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class zerosImpl extends MinimalEObjectImpl.Container implements zeros {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected zerosImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_initializersPackage.Literals.ZEROS;
+ }
+
+} //zerosImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/initializer_with_gain.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/initializer_with_gain.java
new file mode 100644
index 0000000..1ad5aa8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/initializer_with_gain.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>initializer with gain</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_gain#getGain <em>Gain</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getinitializer_with_gain()
+ * @model abstract="true"
+ * @generated
+ */
+public interface initializer_with_gain extends EObject {
+ /**
+ * Returns the value of the '<em><b>Gain</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Gain</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Gain</em>' attribute.
+ * @see #setGain(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getinitializer_with_gain_Gain()
+ * @model dataType="org.eclipse.uml2.types.Real" required="true" ordered="false"
+ * @generated
+ */
+ double getGain();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_gain#getGain <em>Gain</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Gain</em>' attribute.
+ * @see #getGain()
+ * @generated
+ */
+ void setGain(double value);
+
+} // initializer_with_gain
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/initializer_with_mean_stddev.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/initializer_with_mean_stddev.java
new file mode 100644
index 0000000..480133b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/initializer_with_mean_stddev.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>initializer with mean stddev</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_mean_stddev#getMean <em>Mean</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_mean_stddev#getStddev <em>Stddev</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getinitializer_with_mean_stddev()
+ * @model abstract="true"
+ * @generated
+ */
+public interface initializer_with_mean_stddev extends initializer_with_seed {
+ /**
+ * Returns the value of the '<em><b>Mean</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mean</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mean</em>' attribute.
+ * @see #setMean(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getinitializer_with_mean_stddev_Mean()
+ * @model dataType="org.eclipse.uml2.types.Real" required="true" ordered="false"
+ * @generated
+ */
+ double getMean();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_mean_stddev#getMean <em>Mean</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mean</em>' attribute.
+ * @see #getMean()
+ * @generated
+ */
+ void setMean(double value);
+
+ /**
+ * Returns the value of the '<em><b>Stddev</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stddev</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stddev</em>' attribute.
+ * @see #setStddev(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getinitializer_with_mean_stddev_Stddev()
+ * @model dataType="org.eclipse.uml2.types.Real" required="true" ordered="false"
+ * @generated
+ */
+ double getStddev();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_mean_stddev#getStddev <em>Stddev</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stddev</em>' attribute.
+ * @see #getStddev()
+ * @generated
+ */
+ void setStddev(double value);
+
+} // initializer_with_mean_stddev
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/initializer_with_seed.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/initializer_with_seed.java
new file mode 100644
index 0000000..268bf90
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/initializer_with_seed.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>initializer with seed</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_seed#getSeed <em>Seed</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getinitializer_with_seed()
+ * @model abstract="true"
+ * @generated
+ */
+public interface initializer_with_seed extends EObject {
+ /**
+ * Returns the value of the '<em><b>Seed</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Seed</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Seed</em>' attribute.
+ * @see #setSeed(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getinitializer_with_seed_Seed()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getSeed();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_seed#getSeed <em>Seed</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Seed</em>' attribute.
+ * @see #getSeed()
+ * @generated
+ */
+ void setSeed(int value);
+
+} // initializer_with_seed
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/ones.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/ones.java
new file mode 100644
index 0000000..981cc3c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/ones.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>ones</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getones()
+ * @model
+ * @generated
+ */
+public interface ones extends EObject {
+} // ones
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/orthogonal.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/orthogonal.java
new file mode 100644
index 0000000..c02c7c4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/orthogonal.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>orthogonal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getorthogonal()
+ * @model
+ * @generated
+ */
+public interface orthogonal extends initializer_with_gain, initializer_with_seed {
+} // orthogonal
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/random_normal.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/random_normal.java
new file mode 100644
index 0000000..3854d89
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/random_normal.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>random normal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getrandom_normal()
+ * @model
+ * @generated
+ */
+public interface random_normal extends initializer_with_mean_stddev {
+} // random_normal
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/random_uniform.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/random_uniform.java
new file mode 100644
index 0000000..069ac58
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/random_uniform.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>random uniform</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_uniform#getMinval <em>Minval</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_uniform#getMaxval <em>Maxval</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getrandom_uniform()
+ * @model
+ * @generated
+ */
+public interface random_uniform extends initializer_with_seed {
+ /**
+ * Returns the value of the '<em><b>Minval</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Minval</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Minval</em>' attribute.
+ * @see #setMinval(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getrandom_uniform_Minval()
+ * @model dataType="org.eclipse.uml2.types.Real" required="true" ordered="false"
+ * @generated
+ */
+ double getMinval();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_uniform#getMinval <em>Minval</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Minval</em>' attribute.
+ * @see #getMinval()
+ * @generated
+ */
+ void setMinval(double value);
+
+ /**
+ * Returns the value of the '<em><b>Maxval</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Maxval</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Maxval</em>' attribute.
+ * @see #setMaxval(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getrandom_uniform_Maxval()
+ * @model dataType="org.eclipse.uml2.types.Real" required="true" ordered="false"
+ * @generated
+ */
+ double getMaxval();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_uniform#getMaxval <em>Maxval</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Maxval</em>' attribute.
+ * @see #getMaxval()
+ * @generated
+ */
+ void setMaxval(double value);
+
+} // random_uniform
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/truncated_normal.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/truncated_normal.java
new file mode 100644
index 0000000..b2626d8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/truncated_normal.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>truncated normal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#gettruncated_normal()
+ * @model
+ * @generated
+ */
+public interface truncated_normal extends initializer_with_mean_stddev {
+} // truncated_normal
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/util/Layer_weight_initializersAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/util/Layer_weight_initializersAdapterFactory.java
new file mode 100644
index 0000000..e85fc24
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/util/Layer_weight_initializersAdapterFactory.java
@@ -0,0 +1,363 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage
+ * @generated
+ */
+public class Layer_weight_initializersAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Layer_weight_initializersPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Layer_weight_initializersAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Layer_weight_initializersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Layer_weight_initializersSwitch<Adapter> modelSwitch =
+ new Layer_weight_initializersSwitch<Adapter>() {
+ @Override
+ public Adapter caserandom_normal(random_normal object) {
+ return createrandom_normalAdapter();
+ }
+ @Override
+ public Adapter caseinitializer_with_mean_stddev(initializer_with_mean_stddev object) {
+ return createinitializer_with_mean_stddevAdapter();
+ }
+ @Override
+ public Adapter caseinitializer_with_seed(initializer_with_seed object) {
+ return createinitializer_with_seedAdapter();
+ }
+ @Override
+ public Adapter caserandom_uniform(random_uniform object) {
+ return createrandom_uniformAdapter();
+ }
+ @Override
+ public Adapter casetruncated_normal(truncated_normal object) {
+ return createtruncated_normalAdapter();
+ }
+ @Override
+ public Adapter casezeros(zeros object) {
+ return createzerosAdapter();
+ }
+ @Override
+ public Adapter caseones(ones object) {
+ return createonesAdapter();
+ }
+ @Override
+ public Adapter caseglorot_normal(glorot_normal object) {
+ return createglorot_normalAdapter();
+ }
+ @Override
+ public Adapter caseglorot_uniform(glorot_uniform object) {
+ return createglorot_uniformAdapter();
+ }
+ @Override
+ public Adapter caseidentity(identity object) {
+ return createidentityAdapter();
+ }
+ @Override
+ public Adapter caseinitializer_with_gain(initializer_with_gain object) {
+ return createinitializer_with_gainAdapter();
+ }
+ @Override
+ public Adapter caseorthogonal(orthogonal object) {
+ return createorthogonalAdapter();
+ }
+ @Override
+ public Adapter caseconstant(constant object) {
+ return createconstantAdapter();
+ }
+ @Override
+ public Adapter casevariance_scaling(variance_scaling object) {
+ return createvariance_scalingAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_normal <em>random normal</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_normal
+ * @generated
+ */
+ public Adapter createrandom_normalAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_mean_stddev <em>initializer with mean stddev</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_mean_stddev
+ * @generated
+ */
+ public Adapter createinitializer_with_mean_stddevAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_seed <em>initializer with seed</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_seed
+ * @generated
+ */
+ public Adapter createinitializer_with_seedAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_uniform <em>random uniform</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.random_uniform
+ * @generated
+ */
+ public Adapter createrandom_uniformAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.truncated_normal <em>truncated normal</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.truncated_normal
+ * @generated
+ */
+ public Adapter createtruncated_normalAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.zeros <em>zeros</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.zeros
+ * @generated
+ */
+ public Adapter createzerosAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.ones <em>ones</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.ones
+ * @generated
+ */
+ public Adapter createonesAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.glorot_normal <em>glorot normal</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.glorot_normal
+ * @generated
+ */
+ public Adapter createglorot_normalAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.glorot_uniform <em>glorot uniform</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.glorot_uniform
+ * @generated
+ */
+ public Adapter createglorot_uniformAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.identity <em>identity</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.identity
+ * @generated
+ */
+ public Adapter createidentityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_gain <em>initializer with gain</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.initializer_with_gain
+ * @generated
+ */
+ public Adapter createinitializer_with_gainAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.orthogonal <em>orthogonal</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.orthogonal
+ * @generated
+ */
+ public Adapter createorthogonalAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.constant <em>constant</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.constant
+ * @generated
+ */
+ public Adapter createconstantAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling <em>variance scaling</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling
+ * @generated
+ */
+ public Adapter createvariance_scalingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Layer_weight_initializersAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/util/Layer_weight_initializersSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/util/Layer_weight_initializersSwitch.java
new file mode 100644
index 0000000..ad90c82
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/util/Layer_weight_initializersSwitch.java
@@ -0,0 +1,404 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage
+ * @generated
+ */
+public class Layer_weight_initializersSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Layer_weight_initializersPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Layer_weight_initializersSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Layer_weight_initializersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Layer_weight_initializersPackage.RANDOM_NORMAL: {
+ random_normal random_normal = (random_normal)theEObject;
+ T result = caserandom_normal(random_normal);
+ if (result == null) result = caseinitializer_with_mean_stddev(random_normal);
+ if (result == null) result = caseinitializer_with_seed(random_normal);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_MEAN_STDDEV: {
+ initializer_with_mean_stddev initializer_with_mean_stddev = (initializer_with_mean_stddev)theEObject;
+ T result = caseinitializer_with_mean_stddev(initializer_with_mean_stddev);
+ if (result == null) result = caseinitializer_with_seed(initializer_with_mean_stddev);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_SEED: {
+ initializer_with_seed initializer_with_seed = (initializer_with_seed)theEObject;
+ T result = caseinitializer_with_seed(initializer_with_seed);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_initializersPackage.RANDOM_UNIFORM: {
+ random_uniform random_uniform = (random_uniform)theEObject;
+ T result = caserandom_uniform(random_uniform);
+ if (result == null) result = caseinitializer_with_seed(random_uniform);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_initializersPackage.TRUNCATED_NORMAL: {
+ truncated_normal truncated_normal = (truncated_normal)theEObject;
+ T result = casetruncated_normal(truncated_normal);
+ if (result == null) result = caseinitializer_with_mean_stddev(truncated_normal);
+ if (result == null) result = caseinitializer_with_seed(truncated_normal);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_initializersPackage.ZEROS: {
+ zeros zeros = (zeros)theEObject;
+ T result = casezeros(zeros);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_initializersPackage.ONES: {
+ ones ones = (ones)theEObject;
+ T result = caseones(ones);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_initializersPackage.GLOROT_NORMAL: {
+ glorot_normal glorot_normal = (glorot_normal)theEObject;
+ T result = caseglorot_normal(glorot_normal);
+ if (result == null) result = caseinitializer_with_seed(glorot_normal);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_initializersPackage.GLOROT_UNIFORM: {
+ glorot_uniform glorot_uniform = (glorot_uniform)theEObject;
+ T result = caseglorot_uniform(glorot_uniform);
+ if (result == null) result = caseinitializer_with_seed(glorot_uniform);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_initializersPackage.IDENTITY: {
+ identity identity = (identity)theEObject;
+ T result = caseidentity(identity);
+ if (result == null) result = caseinitializer_with_gain(identity);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_initializersPackage.INITIALIZER_WITH_GAIN: {
+ initializer_with_gain initializer_with_gain = (initializer_with_gain)theEObject;
+ T result = caseinitializer_with_gain(initializer_with_gain);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_initializersPackage.ORTHOGONAL: {
+ orthogonal orthogonal = (orthogonal)theEObject;
+ T result = caseorthogonal(orthogonal);
+ if (result == null) result = caseinitializer_with_gain(orthogonal);
+ if (result == null) result = caseinitializer_with_seed(orthogonal);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_initializersPackage.CONSTANT: {
+ constant constant = (constant)theEObject;
+ T result = caseconstant(constant);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_initializersPackage.VARIANCE_SCALING: {
+ variance_scaling variance_scaling = (variance_scaling)theEObject;
+ T result = casevariance_scaling(variance_scaling);
+ if (result == null) result = caseinitializer_with_seed(variance_scaling);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>random normal</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>random normal</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caserandom_normal(random_normal object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>initializer with mean stddev</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>initializer with mean stddev</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseinitializer_with_mean_stddev(initializer_with_mean_stddev object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>initializer with seed</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>initializer with seed</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseinitializer_with_seed(initializer_with_seed object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>random uniform</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>random uniform</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caserandom_uniform(random_uniform object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>truncated normal</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>truncated normal</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casetruncated_normal(truncated_normal object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>zeros</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>zeros</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casezeros(zeros object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>ones</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>ones</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseones(ones object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>glorot normal</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>glorot normal</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseglorot_normal(glorot_normal object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>glorot uniform</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>glorot uniform</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseglorot_uniform(glorot_uniform object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>identity</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>identity</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseidentity(identity object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>initializer with gain</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>initializer with gain</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseinitializer_with_gain(initializer_with_gain object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>orthogonal</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>orthogonal</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseorthogonal(orthogonal object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>constant</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>constant</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseconstant(constant object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>variance scaling</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>variance scaling</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casevariance_scaling(variance_scaling object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Layer_weight_initializersSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/variance_scaling.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/variance_scaling.java
new file mode 100644
index 0000000..ac7d2f5
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/variance_scaling.java
@@ -0,0 +1,112 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>variance scaling</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling#getScale <em>Scale</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling#getMode <em>Mode</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling#getDistribution <em>Distribution</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getvariance_scaling()
+ * @model
+ * @generated
+ */
+public interface variance_scaling extends initializer_with_seed {
+ /**
+ * Returns the value of the '<em><b>Scale</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Scale</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Scale</em>' attribute.
+ * @see #setScale(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getvariance_scaling_Scale()
+ * @model dataType="org.eclipse.uml2.types.Real" required="true" ordered="false"
+ * @generated
+ */
+ double getScale();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling#getScale <em>Scale</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Scale</em>' attribute.
+ * @see #getScale()
+ * @generated
+ */
+ void setScale(double value);
+
+ /**
+ * Returns the value of the '<em><b>Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mode</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mode</em>' attribute.
+ * @see #setMode(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getvariance_scaling_Mode()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getMode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling#getMode <em>Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mode</em>' attribute.
+ * @see #getMode()
+ * @generated
+ */
+ void setMode(String value);
+
+ /**
+ * Returns the value of the '<em><b>Distribution</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Distribution</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Distribution</em>' attribute.
+ * @see #setDistribution(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getvariance_scaling_Distribution()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getDistribution();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.variance_scaling#getDistribution <em>Distribution</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Distribution</em>' attribute.
+ * @see #getDistribution()
+ * @generated
+ */
+ void setDistribution(String value);
+
+} // variance_scaling
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/zeros.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/zeros.java
new file mode 100644
index 0000000..652e090
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_initializers/zeros.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>zeros</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage#getzeros()
+ * @model
+ * @generated
+ */
+public interface zeros extends EObject {
+} // zeros
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/Layer_weight_regularizersFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/Layer_weight_regularizersFactory.java
new file mode 100644
index 0000000..aeea1f7
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/Layer_weight_regularizersFactory.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage
+ * @generated
+ */
+public interface Layer_weight_regularizersFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Layer_weight_regularizersFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>l1</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>l1</em>'.
+ * @generated
+ */
+ l1 createl1();
+
+ /**
+ * Returns a new object of class '<em>l2</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>l2</em>'.
+ * @generated
+ */
+ l2 createl2();
+
+ /**
+ * Returns a new object of class '<em>l1 l2</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>l1 l2</em>'.
+ * @generated
+ */
+ l1_l2 createl1_l2();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Layer_weight_regularizersPackage getLayer_weight_regularizersPackage();
+
+} //Layer_weight_regularizersFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/Layer_weight_regularizersPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/Layer_weight_regularizersPackage.java
new file mode 100644
index 0000000..6473634
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/Layer_weight_regularizersPackage.java
@@ -0,0 +1,425 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Layer_weight_regularizersPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Layer_weight_regularizers"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///AIML/Layer_weight_regularizers.ecore"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Layer_weight_regularizers"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Layer_weight_regularizersPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.ReguWithl1Impl <em>Regu Withl1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.ReguWithl1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl#getReguWithl1()
+ * @generated
+ */
+ int REGU_WITHL1 = 1;
+
+ /**
+ * The feature id for the '<em><b>L1</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REGU_WITHL1__L1 = 0;
+
+ /**
+ * The number of structural features of the '<em>Regu Withl1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REGU_WITHL1_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Regu Withl1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REGU_WITHL1_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.l1Impl <em>l1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.l1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl#getl1()
+ * @generated
+ */
+ int L1 = 0;
+
+ /**
+ * The feature id for the '<em><b>L1</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1__L1 = REGU_WITHL1__L1;
+
+ /**
+ * The number of structural features of the '<em>l1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_FEATURE_COUNT = REGU_WITHL1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>l1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_OPERATION_COUNT = REGU_WITHL1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.ReguWithl2Impl <em>Regu Withl2</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.ReguWithl2Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl#getReguWithl2()
+ * @generated
+ */
+ int REGU_WITHL2 = 3;
+
+ /**
+ * The feature id for the '<em><b>L2</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REGU_WITHL2__L2 = 0;
+
+ /**
+ * The number of structural features of the '<em>Regu Withl2</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REGU_WITHL2_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Regu Withl2</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REGU_WITHL2_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.l2Impl <em>l2</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.l2Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl#getl2()
+ * @generated
+ */
+ int L2 = 2;
+
+ /**
+ * The feature id for the '<em><b>L2</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L2__L2 = REGU_WITHL2__L2;
+
+ /**
+ * The number of structural features of the '<em>l2</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L2_FEATURE_COUNT = REGU_WITHL2_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>l2</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L2_OPERATION_COUNT = REGU_WITHL2_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.l1_l2Impl <em>l1 l2</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.l1_l2Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl#getl1_l2()
+ * @generated
+ */
+ int L1_L2 = 4;
+
+ /**
+ * The feature id for the '<em><b>L1</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_L2__L1 = REGU_WITHL1__L1;
+
+ /**
+ * The feature id for the '<em><b>L2</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_L2__L2 = REGU_WITHL1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>l1 l2</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_L2_FEATURE_COUNT = REGU_WITHL1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>l1 l2</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_L2_OPERATION_COUNT = REGU_WITHL1_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l1 <em>l1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>l1</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l1
+ * @generated
+ */
+ EClass getl1();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl1 <em>Regu Withl1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Regu Withl1</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl1
+ * @generated
+ */
+ EClass getReguWithl1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl1#getL1 <em>L1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>L1</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl1#getL1()
+ * @see #getReguWithl1()
+ * @generated
+ */
+ EAttribute getReguWithl1_L1();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l2 <em>l2</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>l2</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l2
+ * @generated
+ */
+ EClass getl2();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl2 <em>Regu Withl2</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Regu Withl2</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl2
+ * @generated
+ */
+ EClass getReguWithl2();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl2#getL2 <em>L2</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>L2</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl2#getL2()
+ * @see #getReguWithl2()
+ * @generated
+ */
+ EAttribute getReguWithl2_L2();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l1_l2 <em>l1 l2</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>l1 l2</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l1_l2
+ * @generated
+ */
+ EClass getl1_l2();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Layer_weight_regularizersFactory getLayer_weight_regularizersFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.l1Impl <em>l1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.l1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl#getl1()
+ * @generated
+ */
+ EClass L1 = eINSTANCE.getl1();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.ReguWithl1Impl <em>Regu Withl1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.ReguWithl1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl#getReguWithl1()
+ * @generated
+ */
+ EClass REGU_WITHL1 = eINSTANCE.getReguWithl1();
+
+ /**
+ * The meta object literal for the '<em><b>L1</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute REGU_WITHL1__L1 = eINSTANCE.getReguWithl1_L1();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.l2Impl <em>l2</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.l2Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl#getl2()
+ * @generated
+ */
+ EClass L2 = eINSTANCE.getl2();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.ReguWithl2Impl <em>Regu Withl2</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.ReguWithl2Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl#getReguWithl2()
+ * @generated
+ */
+ EClass REGU_WITHL2 = eINSTANCE.getReguWithl2();
+
+ /**
+ * The meta object literal for the '<em><b>L2</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute REGU_WITHL2__L2 = eINSTANCE.getReguWithl2_L2();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.l1_l2Impl <em>l1 l2</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.l1_l2Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl#getl1_l2()
+ * @generated
+ */
+ EClass L1_L2 = eINSTANCE.getl1_l2();
+
+ }
+
+} //Layer_weight_regularizersPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/ReguWithl1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/ReguWithl1.java
new file mode 100644
index 0000000..a29f8b5
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/ReguWithl1.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Regu Withl1</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl1#getL1 <em>L1</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage#getReguWithl1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ReguWithl1 extends EObject {
+ /**
+ * Returns the value of the '<em><b>L1</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>L1</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>L1</em>' attribute.
+ * @see #setL1(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage#getReguWithl1_L1()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getL1();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl1#getL1 <em>L1</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>L1</em>' attribute.
+ * @see #getL1()
+ * @generated
+ */
+ void setL1(double value);
+
+} // ReguWithl1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/ReguWithl2.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/ReguWithl2.java
new file mode 100644
index 0000000..8d9b7cd
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/ReguWithl2.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Regu Withl2</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl2#getL2 <em>L2</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage#getReguWithl2()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ReguWithl2 extends EObject {
+ /**
+ * Returns the value of the '<em><b>L2</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>L2</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>L2</em>' attribute.
+ * @see #setL2(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage#getReguWithl2_L2()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getL2();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl2#getL2 <em>L2</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>L2</em>' attribute.
+ * @see #getL2()
+ * @generated
+ */
+ void setL2(double value);
+
+} // ReguWithl2
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/Layer_weight_regularizersFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/Layer_weight_regularizersFactoryImpl.java
new file mode 100644
index 0000000..524866e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/Layer_weight_regularizersFactoryImpl.java
@@ -0,0 +1,130 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Layer_weight_regularizersFactoryImpl extends EFactoryImpl implements Layer_weight_regularizersFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Layer_weight_regularizersFactory init() {
+ try {
+ Layer_weight_regularizersFactory theLayer_weight_regularizersFactory = (Layer_weight_regularizersFactory)EPackage.Registry.INSTANCE.getEFactory(Layer_weight_regularizersPackage.eNS_URI);
+ if (theLayer_weight_regularizersFactory != null) {
+ return theLayer_weight_regularizersFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Layer_weight_regularizersFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Layer_weight_regularizersFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Layer_weight_regularizersPackage.L1: return createl1();
+ case Layer_weight_regularizersPackage.L2: return createl2();
+ case Layer_weight_regularizersPackage.L1_L2: return createl1_l2();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public l1 createl1() {
+ l1Impl l1 = new l1Impl();
+ return l1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public l2 createl2() {
+ l2Impl l2 = new l2Impl();
+ return l2;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public l1_l2 createl1_l2() {
+ l1_l2Impl l1_l2 = new l1_l2Impl();
+ return l1_l2;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Layer_weight_regularizersPackage getLayer_weight_regularizersPackage() {
+ return (Layer_weight_regularizersPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Layer_weight_regularizersPackage getPackage() {
+ return Layer_weight_regularizersPackage.eINSTANCE;
+ }
+
+} //Layer_weight_regularizersFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/Layer_weight_regularizersPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/Layer_weight_regularizersPackageImpl.java
new file mode 100644
index 0000000..854d9fa
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/Layer_weight_regularizersPackageImpl.java
@@ -0,0 +1,473 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl1;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl2;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l1;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l1_l2;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l2;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Layer_weight_regularizersPackageImpl extends EPackageImpl implements Layer_weight_regularizersPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass l1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass reguWithl1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass l2EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass reguWithl2EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass l1_l2EClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Layer_weight_regularizersPackageImpl() {
+ super(eNS_URI, Layer_weight_regularizersFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Layer_weight_regularizersPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Layer_weight_regularizersPackage init() {
+ if (isInited) return (Layer_weight_regularizersPackage)EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredLayer_weight_regularizersPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = registeredLayer_weight_regularizersPackage instanceof Layer_weight_regularizersPackageImpl ? (Layer_weight_regularizersPackageImpl)registeredLayer_weight_regularizersPackage : new Layer_weight_regularizersPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theLayer_weight_regularizersPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Layer_weight_regularizersPackage.eNS_URI, theLayer_weight_regularizersPackage);
+ return theLayer_weight_regularizersPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getl1() {
+ return l1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getReguWithl1() {
+ return reguWithl1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getReguWithl1_L1() {
+ return (EAttribute)reguWithl1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getl2() {
+ return l2EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getReguWithl2() {
+ return reguWithl2EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getReguWithl2_L2() {
+ return (EAttribute)reguWithl2EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getl1_l2() {
+ return l1_l2EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Layer_weight_regularizersFactory getLayer_weight_regularizersFactory() {
+ return (Layer_weight_regularizersFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ l1EClass = createEClass(L1);
+
+ reguWithl1EClass = createEClass(REGU_WITHL1);
+ createEAttribute(reguWithl1EClass, REGU_WITHL1__L1);
+
+ l2EClass = createEClass(L2);
+
+ reguWithl2EClass = createEClass(REGU_WITHL2);
+ createEAttribute(reguWithl2EClass, REGU_WITHL2__L2);
+
+ l1_l2EClass = createEClass(L1_L2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ l1EClass.getESuperTypes().add(this.getReguWithl1());
+ l2EClass.getESuperTypes().add(this.getReguWithl2());
+ l1_l2EClass.getESuperTypes().add(this.getReguWithl1());
+ l1_l2EClass.getESuperTypes().add(this.getReguWithl2());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(l1EClass, l1.class, "l1", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(reguWithl1EClass, ReguWithl1.class, "ReguWithl1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getReguWithl1_L1(), theTypesPackage.getReal(), "l1", null, 0, 1, ReguWithl1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(l2EClass, l2.class, "l2", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(reguWithl2EClass, ReguWithl2.class, "ReguWithl2", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getReguWithl2_L2(), theTypesPackage.getReal(), "l2", null, 0, 1, ReguWithl2.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(l1_l2EClass, l1_l2.class, "l1_l2", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ }
+
+} //Layer_weight_regularizersPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/ReguWithl1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/ReguWithl1Impl.java
new file mode 100644
index 0000000..a84802d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/ReguWithl1Impl.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Regu Withl1</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.ReguWithl1Impl#getL1 <em>L1</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class ReguWithl1Impl extends MinimalEObjectImpl.Container implements ReguWithl1 {
+ /**
+ * The default value of the '{@link #getL1() <em>L1</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getL1()
+ * @generated
+ * @ordered
+ */
+ protected static final double L1_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getL1() <em>L1</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getL1()
+ * @generated
+ * @ordered
+ */
+ protected double l1 = L1_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReguWithl1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_regularizersPackage.Literals.REGU_WITHL1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getL1() {
+ return l1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setL1(double newL1) {
+ double oldL1 = l1;
+ l1 = newL1;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_regularizersPackage.REGU_WITHL1__L1, oldL1, l1));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Layer_weight_regularizersPackage.REGU_WITHL1__L1:
+ return getL1();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Layer_weight_regularizersPackage.REGU_WITHL1__L1:
+ setL1((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Layer_weight_regularizersPackage.REGU_WITHL1__L1:
+ setL1(L1_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Layer_weight_regularizersPackage.REGU_WITHL1__L1:
+ return l1 != L1_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (l1: "); //$NON-NLS-1$
+ result.append(l1);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ReguWithl1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/ReguWithl2Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/ReguWithl2Impl.java
new file mode 100644
index 0000000..076efe7
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/ReguWithl2Impl.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl2;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Regu Withl2</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.ReguWithl2Impl#getL2 <em>L2</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class ReguWithl2Impl extends MinimalEObjectImpl.Container implements ReguWithl2 {
+ /**
+ * The default value of the '{@link #getL2() <em>L2</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getL2()
+ * @generated
+ * @ordered
+ */
+ protected static final double L2_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getL2() <em>L2</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getL2()
+ * @generated
+ * @ordered
+ */
+ protected double l2 = L2_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReguWithl2Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_regularizersPackage.Literals.REGU_WITHL2;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getL2() {
+ return l2;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setL2(double newL2) {
+ double oldL2 = l2;
+ l2 = newL2;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_regularizersPackage.REGU_WITHL2__L2, oldL2, l2));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Layer_weight_regularizersPackage.REGU_WITHL2__L2:
+ return getL2();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Layer_weight_regularizersPackage.REGU_WITHL2__L2:
+ setL2((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Layer_weight_regularizersPackage.REGU_WITHL2__L2:
+ setL2(L2_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Layer_weight_regularizersPackage.REGU_WITHL2__L2:
+ return l2 != L2_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (l2: "); //$NON-NLS-1$
+ result.append(l2);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ReguWithl2Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/l1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/l1Impl.java
new file mode 100644
index 0000000..30c8b00
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/l1Impl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>l1</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class l1Impl extends ReguWithl1Impl implements l1 {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected l1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_regularizersPackage.Literals.L1;
+ }
+
+} //l1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/l1_l2Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/l1_l2Impl.java
new file mode 100644
index 0000000..3b76c2c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/l1_l2Impl.java
@@ -0,0 +1,206 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl2;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l1_l2;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>l1 l2</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.l1_l2Impl#getL2 <em>L2</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class l1_l2Impl extends ReguWithl1Impl implements l1_l2 {
+ /**
+ * The default value of the '{@link #getL2() <em>L2</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getL2()
+ * @generated
+ * @ordered
+ */
+ protected static final double L2_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getL2() <em>L2</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getL2()
+ * @generated
+ * @ordered
+ */
+ protected double l2 = L2_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected l1_l2Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_regularizersPackage.Literals.L1_L2;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getL2() {
+ return l2;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setL2(double newL2) {
+ double oldL2 = l2;
+ l2 = newL2;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Layer_weight_regularizersPackage.L1_L2__L2, oldL2, l2));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Layer_weight_regularizersPackage.L1_L2__L2:
+ return getL2();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Layer_weight_regularizersPackage.L1_L2__L2:
+ setL2((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Layer_weight_regularizersPackage.L1_L2__L2:
+ setL2(L2_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Layer_weight_regularizersPackage.L1_L2__L2:
+ return l2 != L2_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == ReguWithl2.class) {
+ switch (derivedFeatureID) {
+ case Layer_weight_regularizersPackage.L1_L2__L2: return Layer_weight_regularizersPackage.REGU_WITHL2__L2;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == ReguWithl2.class) {
+ switch (baseFeatureID) {
+ case Layer_weight_regularizersPackage.REGU_WITHL2__L2: return Layer_weight_regularizersPackage.L1_L2__L2;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (l2: "); //$NON-NLS-1$
+ result.append(l2);
+ result.append(')');
+ return result.toString();
+ }
+
+} //l1_l2Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/l2Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/l2Impl.java
new file mode 100644
index 0000000..214b6c3
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/impl/l2Impl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l2;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>l2</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class l2Impl extends ReguWithl2Impl implements l2 {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected l2Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Layer_weight_regularizersPackage.Literals.L2;
+ }
+
+} //l2Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/l1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/l1.java
new file mode 100644
index 0000000..94bb60f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/l1.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>l1</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage#getl1()
+ * @model
+ * @generated
+ */
+public interface l1 extends ReguWithl1 {
+} // l1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/l1_l2.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/l1_l2.java
new file mode 100644
index 0000000..d291416
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/l1_l2.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>l1 l2</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage#getl1_l2()
+ * @model
+ * @generated
+ */
+public interface l1_l2 extends ReguWithl1, ReguWithl2 {
+} // l1_l2
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/l2.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/l2.java
new file mode 100644
index 0000000..57cfcfb
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/l2.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>l2</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage#getl2()
+ * @model
+ * @generated
+ */
+public interface l2 extends ReguWithl2 {
+} // l2
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/util/Layer_weight_regularizersAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/util/Layer_weight_regularizersAdapterFactory.java
new file mode 100644
index 0000000..3986cff
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/util/Layer_weight_regularizersAdapterFactory.java
@@ -0,0 +1,201 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage
+ * @generated
+ */
+public class Layer_weight_regularizersAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Layer_weight_regularizersPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Layer_weight_regularizersAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Layer_weight_regularizersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Layer_weight_regularizersSwitch<Adapter> modelSwitch =
+ new Layer_weight_regularizersSwitch<Adapter>() {
+ @Override
+ public Adapter casel1(l1 object) {
+ return createl1Adapter();
+ }
+ @Override
+ public Adapter caseReguWithl1(ReguWithl1 object) {
+ return createReguWithl1Adapter();
+ }
+ @Override
+ public Adapter casel2(l2 object) {
+ return createl2Adapter();
+ }
+ @Override
+ public Adapter caseReguWithl2(ReguWithl2 object) {
+ return createReguWithl2Adapter();
+ }
+ @Override
+ public Adapter casel1_l2(l1_l2 object) {
+ return createl1_l2Adapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l1 <em>l1</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l1
+ * @generated
+ */
+ public Adapter createl1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl1 <em>Regu Withl1</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl1
+ * @generated
+ */
+ public Adapter createReguWithl1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l2 <em>l2</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l2
+ * @generated
+ */
+ public Adapter createl2Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl2 <em>Regu Withl2</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.ReguWithl2
+ * @generated
+ */
+ public Adapter createReguWithl2Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l1_l2 <em>l1 l2</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.l1_l2
+ * @generated
+ */
+ public Adapter createl1_l2Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Layer_weight_regularizersAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/util/Layer_weight_regularizersSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/util/Layer_weight_regularizersSwitch.java
new file mode 100644
index 0000000..9e2c36b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Layer_weight_regularizers/util/Layer_weight_regularizersSwitch.java
@@ -0,0 +1,207 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage
+ * @generated
+ */
+public class Layer_weight_regularizersSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Layer_weight_regularizersPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Layer_weight_regularizersSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Layer_weight_regularizersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Layer_weight_regularizersPackage.L1: {
+ l1 l1 = (l1)theEObject;
+ T result = casel1(l1);
+ if (result == null) result = caseReguWithl1(l1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_regularizersPackage.REGU_WITHL1: {
+ ReguWithl1 reguWithl1 = (ReguWithl1)theEObject;
+ T result = caseReguWithl1(reguWithl1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_regularizersPackage.L2: {
+ l2 l2 = (l2)theEObject;
+ T result = casel2(l2);
+ if (result == null) result = caseReguWithl2(l2);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_regularizersPackage.REGU_WITHL2: {
+ ReguWithl2 reguWithl2 = (ReguWithl2)theEObject;
+ T result = caseReguWithl2(reguWithl2);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Layer_weight_regularizersPackage.L1_L2: {
+ l1_l2 l1_l2 = (l1_l2)theEObject;
+ T result = casel1_l2(l1_l2);
+ if (result == null) result = caseReguWithl1(l1_l2);
+ if (result == null) result = caseReguWithl2(l1_l2);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>l1</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>l1</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casel1(l1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Regu Withl1</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Regu Withl1</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseReguWithl1(ReguWithl1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>l2</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>l2</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casel2(l2 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Regu Withl2</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Regu Withl2</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseReguWithl2(ReguWithl2 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>l1 l2</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>l1 l2</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casel1_l2(l1_l2 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Layer_weight_regularizersSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Bilinear.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Bilinear.java
new file mode 100644
index 0000000..849f723
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Bilinear.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Bilinear</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Bilinear#getIn1_features <em>In1 features</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Bilinear#getIn2_features <em>In2 features</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage#getBilinear()
+ * @model
+ * @generated
+ */
+public interface Bilinear extends Linear_layers_1 {
+ /**
+ * Returns the value of the '<em><b>In1 features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>In1 features</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>In1 features</em>' attribute.
+ * @see #setIn1_features(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage#getBilinear_In1_features()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getIn1_features();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Bilinear#getIn1_features <em>In1 features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>In1 features</em>' attribute.
+ * @see #getIn1_features()
+ * @generated
+ */
+ void setIn1_features(int value);
+
+ /**
+ * Returns the value of the '<em><b>In2 features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>In2 features</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>In2 features</em>' attribute.
+ * @see #setIn2_features(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage#getBilinear_In2_features()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getIn2_features();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Bilinear#getIn2_features <em>In2 features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>In2 features</em>' attribute.
+ * @see #getIn2_features()
+ * @generated
+ */
+ void setIn2_features(int value);
+
+} // Bilinear
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Identity.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Identity.java
new file mode 100644
index 0000000..0b01802
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Identity.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Identity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage#getIdentity()
+ * @model
+ * @generated
+ */
+public interface Identity extends Linear_layers {
+} // Identity
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear.java
new file mode 100644
index 0000000..1b74378
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear.java
@@ -0,0 +1,139 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Linear</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getIn_features <em>In features</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getActivation <em>Activation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getKernel_initializer <em>Kernel initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getBias_initializer <em>Bias initializer</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage#getLinear()
+ * @model
+ * @generated
+ */
+public interface Linear extends Linear_layers_1 {
+ /**
+ * Returns the value of the '<em><b>In features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>In features</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>In features</em>' attribute.
+ * @see #setIn_features(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage#getLinear_In_features()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getIn_features();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getIn_features <em>In features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>In features</em>' attribute.
+ * @see #getIn_features()
+ * @generated
+ */
+ void setIn_features(int value);
+
+ /**
+ * Returns the value of the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Activation</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Activation</em>' attribute.
+ * @see #setActivation(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage#getLinear_Activation()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getActivation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getActivation <em>Activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Activation</em>' attribute.
+ * @see #getActivation()
+ * @generated
+ */
+ void setActivation(String value);
+
+ /**
+ * Returns the value of the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kernel initializer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kernel initializer</em>' attribute.
+ * @see #setKernel_initializer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage#getLinear_Kernel_initializer()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getKernel_initializer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getKernel_initializer <em>Kernel initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Kernel initializer</em>' attribute.
+ * @see #getKernel_initializer()
+ * @generated
+ */
+ void setKernel_initializer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bias initializer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bias initializer</em>' attribute.
+ * @see #setBias_initializer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage#getLinear_Bias_initializer()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getBias_initializer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getBias_initializer <em>Bias initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bias initializer</em>' attribute.
+ * @see #getBias_initializer()
+ * @generated
+ */
+ void setBias_initializer(String value);
+
+} // Linear
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear_layers.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear_layers.java
new file mode 100644
index 0000000..f45c99d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear_layers.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Linear layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage#getLinear_layers()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Linear_layers extends Model {
+} // Linear_layers
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear_layersFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear_layersFactory.java
new file mode 100644
index 0000000..2c63d18
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear_layersFactory.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage
+ * @generated
+ */
+public interface Linear_layersFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Linear_layersFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Identity</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Identity</em>'.
+ * @generated
+ */
+ Identity createIdentity();
+
+ /**
+ * Returns a new object of class '<em>Linear</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Linear</em>'.
+ * @generated
+ */
+ Linear createLinear();
+
+ /**
+ * Returns a new object of class '<em>Bilinear</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Bilinear</em>'.
+ * @generated
+ */
+ Bilinear createBilinear();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Linear_layersPackage getLinear_layersPackage();
+
+} //Linear_layersFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear_layersPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear_layersPackage.java
new file mode 100644
index 0000000..f9f33cd
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear_layersPackage.java
@@ -0,0 +1,910 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Linear_layersPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Linear_layers"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/linear/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Linear_layers"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Linear_layersPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersImpl <em>Linear layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl#getLinear_layers()
+ * @generated
+ */
+ int LINEAR_LAYERS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The number of structural features of the '<em>Linear layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Linear layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.IdentityImpl <em>Identity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.IdentityImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl#getIdentity()
+ * @generated
+ */
+ int IDENTITY = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDENTITY__BASE_CLASS = LINEAR_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDENTITY__NAME = LINEAR_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDENTITY__DATA = LINEAR_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDENTITY__REQUIRES_GRAD = LINEAR_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDENTITY__SUB_MODULE = LINEAR_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDENTITY__OPTIMIZER = LINEAR_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDENTITY__LOSS = LINEAR_LAYERS__LOSS;
+
+ /**
+ * The number of structural features of the '<em>Identity</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDENTITY_FEATURE_COUNT = LINEAR_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Identity</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int IDENTITY_OPERATION_COUNT = LINEAR_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layers_1Impl <em>Linear layers 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layers_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl#getLinear_layers_1()
+ * @generated
+ */
+ int LINEAR_LAYERS_1 = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS_1__BASE_CLASS = LINEAR_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS_1__NAME = LINEAR_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS_1__DATA = LINEAR_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS_1__REQUIRES_GRAD = LINEAR_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS_1__SUB_MODULE = LINEAR_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS_1__OPTIMIZER = LINEAR_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS_1__LOSS = LINEAR_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Out features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS_1__OUT_FEATURES = LINEAR_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Bias</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS_1__BIAS = LINEAR_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Linear layers 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS_1_FEATURE_COUNT = LINEAR_LAYERS_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Linear layers 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_LAYERS_1_OPERATION_COUNT = LINEAR_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.LinearImpl <em>Linear</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.LinearImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl#getLinear()
+ * @generated
+ */
+ int LINEAR = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR__BASE_CLASS = LINEAR_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR__NAME = LINEAR_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR__DATA = LINEAR_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR__REQUIRES_GRAD = LINEAR_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR__SUB_MODULE = LINEAR_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR__OPTIMIZER = LINEAR_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR__LOSS = LINEAR_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Out features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR__OUT_FEATURES = LINEAR_LAYERS_1__OUT_FEATURES;
+
+ /**
+ * The feature id for the '<em><b>Bias</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR__BIAS = LINEAR_LAYERS_1__BIAS;
+
+ /**
+ * The feature id for the '<em><b>In features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR__IN_FEATURES = LINEAR_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR__ACTIVATION = LINEAR_LAYERS_1_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR__KERNEL_INITIALIZER = LINEAR_LAYERS_1_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR__BIAS_INITIALIZER = LINEAR_LAYERS_1_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Linear</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_FEATURE_COUNT = LINEAR_LAYERS_1_FEATURE_COUNT + 4;
+
+ /**
+ * The number of operations of the '<em>Linear</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINEAR_OPERATION_COUNT = LINEAR_LAYERS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.BilinearImpl <em>Bilinear</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.BilinearImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl#getBilinear()
+ * @generated
+ */
+ int BILINEAR = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BILINEAR__BASE_CLASS = LINEAR_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BILINEAR__NAME = LINEAR_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BILINEAR__DATA = LINEAR_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BILINEAR__REQUIRES_GRAD = LINEAR_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BILINEAR__SUB_MODULE = LINEAR_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BILINEAR__OPTIMIZER = LINEAR_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BILINEAR__LOSS = LINEAR_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Out features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BILINEAR__OUT_FEATURES = LINEAR_LAYERS_1__OUT_FEATURES;
+
+ /**
+ * The feature id for the '<em><b>Bias</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BILINEAR__BIAS = LINEAR_LAYERS_1__BIAS;
+
+ /**
+ * The feature id for the '<em><b>In1 features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BILINEAR__IN1_FEATURES = LINEAR_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>In2 features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BILINEAR__IN2_FEATURES = LINEAR_LAYERS_1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Bilinear</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BILINEAR_FEATURE_COUNT = LINEAR_LAYERS_1_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Bilinear</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BILINEAR_OPERATION_COUNT = LINEAR_LAYERS_1_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers <em>Linear layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Linear layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers
+ * @generated
+ */
+ EClass getLinear_layers();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Identity <em>Identity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Identity</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Identity
+ * @generated
+ */
+ EClass getIdentity();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers_1 <em>Linear layers 1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Linear layers 1</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers_1
+ * @generated
+ */
+ EClass getLinear_layers_1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers_1#getOut_features <em>Out features</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Out features</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers_1#getOut_features()
+ * @see #getLinear_layers_1()
+ * @generated
+ */
+ EAttribute getLinear_layers_1_Out_features();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers_1#isBias <em>Bias</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bias</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers_1#isBias()
+ * @see #getLinear_layers_1()
+ * @generated
+ */
+ EAttribute getLinear_layers_1_Bias();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear <em>Linear</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Linear</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear
+ * @generated
+ */
+ EClass getLinear();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getIn_features <em>In features</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>In features</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getIn_features()
+ * @see #getLinear()
+ * @generated
+ */
+ EAttribute getLinear_In_features();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getActivation <em>Activation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Activation</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getActivation()
+ * @see #getLinear()
+ * @generated
+ */
+ EAttribute getLinear_Activation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getKernel_initializer <em>Kernel initializer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Kernel initializer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getKernel_initializer()
+ * @see #getLinear()
+ * @generated
+ */
+ EAttribute getLinear_Kernel_initializer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getBias_initializer <em>Bias initializer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bias initializer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear#getBias_initializer()
+ * @see #getLinear()
+ * @generated
+ */
+ EAttribute getLinear_Bias_initializer();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Bilinear <em>Bilinear</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Bilinear</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Bilinear
+ * @generated
+ */
+ EClass getBilinear();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Bilinear#getIn1_features <em>In1 features</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>In1 features</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Bilinear#getIn1_features()
+ * @see #getBilinear()
+ * @generated
+ */
+ EAttribute getBilinear_In1_features();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Bilinear#getIn2_features <em>In2 features</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>In2 features</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Bilinear#getIn2_features()
+ * @see #getBilinear()
+ * @generated
+ */
+ EAttribute getBilinear_In2_features();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Linear_layersFactory getLinear_layersFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersImpl <em>Linear layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl#getLinear_layers()
+ * @generated
+ */
+ EClass LINEAR_LAYERS = eINSTANCE.getLinear_layers();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.IdentityImpl <em>Identity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.IdentityImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl#getIdentity()
+ * @generated
+ */
+ EClass IDENTITY = eINSTANCE.getIdentity();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layers_1Impl <em>Linear layers 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layers_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl#getLinear_layers_1()
+ * @generated
+ */
+ EClass LINEAR_LAYERS_1 = eINSTANCE.getLinear_layers_1();
+
+ /**
+ * The meta object literal for the '<em><b>Out features</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINEAR_LAYERS_1__OUT_FEATURES = eINSTANCE.getLinear_layers_1_Out_features();
+
+ /**
+ * The meta object literal for the '<em><b>Bias</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINEAR_LAYERS_1__BIAS = eINSTANCE.getLinear_layers_1_Bias();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.LinearImpl <em>Linear</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.LinearImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl#getLinear()
+ * @generated
+ */
+ EClass LINEAR = eINSTANCE.getLinear();
+
+ /**
+ * The meta object literal for the '<em><b>In features</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINEAR__IN_FEATURES = eINSTANCE.getLinear_In_features();
+
+ /**
+ * The meta object literal for the '<em><b>Activation</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINEAR__ACTIVATION = eINSTANCE.getLinear_Activation();
+
+ /**
+ * The meta object literal for the '<em><b>Kernel initializer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINEAR__KERNEL_INITIALIZER = eINSTANCE.getLinear_Kernel_initializer();
+
+ /**
+ * The meta object literal for the '<em><b>Bias initializer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINEAR__BIAS_INITIALIZER = eINSTANCE.getLinear_Bias_initializer();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.BilinearImpl <em>Bilinear</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.BilinearImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl#getBilinear()
+ * @generated
+ */
+ EClass BILINEAR = eINSTANCE.getBilinear();
+
+ /**
+ * The meta object literal for the '<em><b>In1 features</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BILINEAR__IN1_FEATURES = eINSTANCE.getBilinear_In1_features();
+
+ /**
+ * The meta object literal for the '<em><b>In2 features</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BILINEAR__IN2_FEATURES = eINSTANCE.getBilinear_In2_features();
+
+ }
+
+} //Linear_layersPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear_layers_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear_layers_1.java
new file mode 100644
index 0000000..7a4ec71
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/Linear_layers_1.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Linear layers 1</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers_1#getOut_features <em>Out features</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers_1#isBias <em>Bias</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage#getLinear_layers_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Linear_layers_1 extends Linear_layers {
+ /**
+ * Returns the value of the '<em><b>Out features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Out features</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Out features</em>' attribute.
+ * @see #setOut_features(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage#getLinear_layers_1_Out_features()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getOut_features();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers_1#getOut_features <em>Out features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Out features</em>' attribute.
+ * @see #getOut_features()
+ * @generated
+ */
+ void setOut_features(int value);
+
+ /**
+ * Returns the value of the '<em><b>Bias</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bias</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bias</em>' attribute.
+ * @see #setBias(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage#getLinear_layers_1_Bias()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isBias();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers_1#isBias <em>Bias</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bias</em>' attribute.
+ * @see #isBias()
+ * @generated
+ */
+ void setBias(boolean value);
+
+} // Linear_layers_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/BilinearImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/BilinearImpl.java
new file mode 100644
index 0000000..a57b91b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/BilinearImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Bilinear;
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Bilinear</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.BilinearImpl#getIn1_features <em>In1 features</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.BilinearImpl#getIn2_features <em>In2 features</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BilinearImpl extends Linear_layers_1Impl implements Bilinear {
+ /**
+ * The default value of the '{@link #getIn1_features() <em>In1 features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIn1_features()
+ * @generated
+ * @ordered
+ */
+ protected static final int IN1_FEATURES_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIn1_features() <em>In1 features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIn1_features()
+ * @generated
+ * @ordered
+ */
+ protected int in1_features = IN1_FEATURES_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIn2_features() <em>In2 features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIn2_features()
+ * @generated
+ * @ordered
+ */
+ protected static final int IN2_FEATURES_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIn2_features() <em>In2 features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIn2_features()
+ * @generated
+ * @ordered
+ */
+ protected int in2_features = IN2_FEATURES_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BilinearImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Linear_layersPackage.Literals.BILINEAR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getIn1_features() {
+ return in1_features;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIn1_features(int newIn1_features) {
+ int oldIn1_features = in1_features;
+ in1_features = newIn1_features;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Linear_layersPackage.BILINEAR__IN1_FEATURES, oldIn1_features, in1_features));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getIn2_features() {
+ return in2_features;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIn2_features(int newIn2_features) {
+ int oldIn2_features = in2_features;
+ in2_features = newIn2_features;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Linear_layersPackage.BILINEAR__IN2_FEATURES, oldIn2_features, in2_features));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Linear_layersPackage.BILINEAR__IN1_FEATURES:
+ return getIn1_features();
+ case Linear_layersPackage.BILINEAR__IN2_FEATURES:
+ return getIn2_features();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Linear_layersPackage.BILINEAR__IN1_FEATURES:
+ setIn1_features((Integer)newValue);
+ return;
+ case Linear_layersPackage.BILINEAR__IN2_FEATURES:
+ setIn2_features((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Linear_layersPackage.BILINEAR__IN1_FEATURES:
+ setIn1_features(IN1_FEATURES_EDEFAULT);
+ return;
+ case Linear_layersPackage.BILINEAR__IN2_FEATURES:
+ setIn2_features(IN2_FEATURES_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Linear_layersPackage.BILINEAR__IN1_FEATURES:
+ return in1_features != IN1_FEATURES_EDEFAULT;
+ case Linear_layersPackage.BILINEAR__IN2_FEATURES:
+ return in2_features != IN2_FEATURES_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (in1_features: "); //$NON-NLS-1$
+ result.append(in1_features);
+ result.append(", in2_features: "); //$NON-NLS-1$
+ result.append(in2_features);
+ result.append(')');
+ return result.toString();
+ }
+
+} //BilinearImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/IdentityImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/IdentityImpl.java
new file mode 100644
index 0000000..62f2cda
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/IdentityImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Identity;
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Identity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class IdentityImpl extends Linear_layersImpl implements Identity {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IdentityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Linear_layersPackage.Literals.IDENTITY;
+ }
+
+} //IdentityImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/LinearImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/LinearImpl.java
new file mode 100644
index 0000000..3760b67
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/LinearImpl.java
@@ -0,0 +1,341 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear;
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Linear</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.LinearImpl#getIn_features <em>In features</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.LinearImpl#getActivation <em>Activation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.LinearImpl#getKernel_initializer <em>Kernel initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.LinearImpl#getBias_initializer <em>Bias initializer</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LinearImpl extends Linear_layers_1Impl implements Linear {
+ /**
+ * The default value of the '{@link #getIn_features() <em>In features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIn_features()
+ * @generated
+ * @ordered
+ */
+ protected static final int IN_FEATURES_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIn_features() <em>In features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIn_features()
+ * @generated
+ * @ordered
+ */
+ protected int in_features = IN_FEATURES_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getActivation() <em>Activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActivation()
+ * @generated
+ * @ordered
+ */
+ protected static final String ACTIVATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getActivation() <em>Activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActivation()
+ * @generated
+ * @ordered
+ */
+ protected String activation = ACTIVATION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getKernel_initializer() <em>Kernel initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKernel_initializer()
+ * @generated
+ * @ordered
+ */
+ protected static final String KERNEL_INITIALIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getKernel_initializer() <em>Kernel initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKernel_initializer()
+ * @generated
+ * @ordered
+ */
+ protected String kernel_initializer = KERNEL_INITIALIZER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getBias_initializer() <em>Bias initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBias_initializer()
+ * @generated
+ * @ordered
+ */
+ protected static final String BIAS_INITIALIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBias_initializer() <em>Bias initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBias_initializer()
+ * @generated
+ * @ordered
+ */
+ protected String bias_initializer = BIAS_INITIALIZER_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LinearImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Linear_layersPackage.Literals.LINEAR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getIn_features() {
+ return in_features;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIn_features(int newIn_features) {
+ int oldIn_features = in_features;
+ in_features = newIn_features;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Linear_layersPackage.LINEAR__IN_FEATURES, oldIn_features, in_features));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getActivation() {
+ return activation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setActivation(String newActivation) {
+ String oldActivation = activation;
+ activation = newActivation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Linear_layersPackage.LINEAR__ACTIVATION, oldActivation, activation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getKernel_initializer() {
+ return kernel_initializer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setKernel_initializer(String newKernel_initializer) {
+ String oldKernel_initializer = kernel_initializer;
+ kernel_initializer = newKernel_initializer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Linear_layersPackage.LINEAR__KERNEL_INITIALIZER, oldKernel_initializer, kernel_initializer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getBias_initializer() {
+ return bias_initializer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBias_initializer(String newBias_initializer) {
+ String oldBias_initializer = bias_initializer;
+ bias_initializer = newBias_initializer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Linear_layersPackage.LINEAR__BIAS_INITIALIZER, oldBias_initializer, bias_initializer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Linear_layersPackage.LINEAR__IN_FEATURES:
+ return getIn_features();
+ case Linear_layersPackage.LINEAR__ACTIVATION:
+ return getActivation();
+ case Linear_layersPackage.LINEAR__KERNEL_INITIALIZER:
+ return getKernel_initializer();
+ case Linear_layersPackage.LINEAR__BIAS_INITIALIZER:
+ return getBias_initializer();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Linear_layersPackage.LINEAR__IN_FEATURES:
+ setIn_features((Integer)newValue);
+ return;
+ case Linear_layersPackage.LINEAR__ACTIVATION:
+ setActivation((String)newValue);
+ return;
+ case Linear_layersPackage.LINEAR__KERNEL_INITIALIZER:
+ setKernel_initializer((String)newValue);
+ return;
+ case Linear_layersPackage.LINEAR__BIAS_INITIALIZER:
+ setBias_initializer((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Linear_layersPackage.LINEAR__IN_FEATURES:
+ setIn_features(IN_FEATURES_EDEFAULT);
+ return;
+ case Linear_layersPackage.LINEAR__ACTIVATION:
+ setActivation(ACTIVATION_EDEFAULT);
+ return;
+ case Linear_layersPackage.LINEAR__KERNEL_INITIALIZER:
+ setKernel_initializer(KERNEL_INITIALIZER_EDEFAULT);
+ return;
+ case Linear_layersPackage.LINEAR__BIAS_INITIALIZER:
+ setBias_initializer(BIAS_INITIALIZER_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Linear_layersPackage.LINEAR__IN_FEATURES:
+ return in_features != IN_FEATURES_EDEFAULT;
+ case Linear_layersPackage.LINEAR__ACTIVATION:
+ return ACTIVATION_EDEFAULT == null ? activation != null : !ACTIVATION_EDEFAULT.equals(activation);
+ case Linear_layersPackage.LINEAR__KERNEL_INITIALIZER:
+ return KERNEL_INITIALIZER_EDEFAULT == null ? kernel_initializer != null : !KERNEL_INITIALIZER_EDEFAULT.equals(kernel_initializer);
+ case Linear_layersPackage.LINEAR__BIAS_INITIALIZER:
+ return BIAS_INITIALIZER_EDEFAULT == null ? bias_initializer != null : !BIAS_INITIALIZER_EDEFAULT.equals(bias_initializer);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (in_features: "); //$NON-NLS-1$
+ result.append(in_features);
+ result.append(", activation: "); //$NON-NLS-1$
+ result.append(activation);
+ result.append(", kernel_initializer: "); //$NON-NLS-1$
+ result.append(kernel_initializer);
+ result.append(", bias_initializer: "); //$NON-NLS-1$
+ result.append(bias_initializer);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LinearImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/Linear_layersFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/Linear_layersFactoryImpl.java
new file mode 100644
index 0000000..ff946d3
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/Linear_layersFactoryImpl.java
@@ -0,0 +1,130 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Linear_layersFactoryImpl extends EFactoryImpl implements Linear_layersFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Linear_layersFactory init() {
+ try {
+ Linear_layersFactory theLinear_layersFactory = (Linear_layersFactory)EPackage.Registry.INSTANCE.getEFactory(Linear_layersPackage.eNS_URI);
+ if (theLinear_layersFactory != null) {
+ return theLinear_layersFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Linear_layersFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Linear_layersFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Linear_layersPackage.IDENTITY: return createIdentity();
+ case Linear_layersPackage.LINEAR: return createLinear();
+ case Linear_layersPackage.BILINEAR: return createBilinear();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Identity createIdentity() {
+ IdentityImpl identity = new IdentityImpl();
+ return identity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Linear createLinear() {
+ LinearImpl linear = new LinearImpl();
+ return linear;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Bilinear createBilinear() {
+ BilinearImpl bilinear = new BilinearImpl();
+ return bilinear;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Linear_layersPackage getLinear_layersPackage() {
+ return (Linear_layersPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Linear_layersPackage getPackage() {
+ return Linear_layersPackage.eINSTANCE;
+ }
+
+} //Linear_layersFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/Linear_layersImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/Linear_layersImpl.java
new file mode 100644
index 0000000..5bdfd96
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/Linear_layersImpl.java
@@ -0,0 +1,47 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Linear layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class Linear_layersImpl extends ModelImpl implements Linear_layers {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Linear_layersImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Linear_layersPackage.Literals.LINEAR_LAYERS;
+ }
+
+} //Linear_layersImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/Linear_layersPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/Linear_layersPackageImpl.java
new file mode 100644
index 0000000..747b643
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/Linear_layersPackageImpl.java
@@ -0,0 +1,547 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Bilinear;
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Identity;
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear;
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers_1;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Linear_layersPackageImpl extends EPackageImpl implements Linear_layersPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linear_layersEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass identityEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linear_layers_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linearEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass bilinearEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Linear_layersPackageImpl() {
+ super(eNS_URI, Linear_layersFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Linear_layersPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Linear_layersPackage init() {
+ if (isInited) return (Linear_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredLinear_layersPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = registeredLinear_layersPackage instanceof Linear_layersPackageImpl ? (Linear_layersPackageImpl)registeredLinear_layersPackage : new Linear_layersPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theLinear_layersPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theLinear_layersPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theLinear_layersPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Linear_layersPackage.eNS_URI, theLinear_layersPackage);
+ return theLinear_layersPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLinear_layers() {
+ return linear_layersEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getIdentity() {
+ return identityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLinear_layers_1() {
+ return linear_layers_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLinear_layers_1_Out_features() {
+ return (EAttribute)linear_layers_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLinear_layers_1_Bias() {
+ return (EAttribute)linear_layers_1EClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLinear() {
+ return linearEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLinear_In_features() {
+ return (EAttribute)linearEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLinear_Activation() {
+ return (EAttribute)linearEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLinear_Kernel_initializer() {
+ return (EAttribute)linearEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLinear_Bias_initializer() {
+ return (EAttribute)linearEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getBilinear() {
+ return bilinearEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getBilinear_In1_features() {
+ return (EAttribute)bilinearEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getBilinear_In2_features() {
+ return (EAttribute)bilinearEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Linear_layersFactory getLinear_layersFactory() {
+ return (Linear_layersFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ linear_layersEClass = createEClass(LINEAR_LAYERS);
+
+ identityEClass = createEClass(IDENTITY);
+
+ linear_layers_1EClass = createEClass(LINEAR_LAYERS_1);
+ createEAttribute(linear_layers_1EClass, LINEAR_LAYERS_1__OUT_FEATURES);
+ createEAttribute(linear_layers_1EClass, LINEAR_LAYERS_1__BIAS);
+
+ linearEClass = createEClass(LINEAR);
+ createEAttribute(linearEClass, LINEAR__IN_FEATURES);
+ createEAttribute(linearEClass, LINEAR__ACTIVATION);
+ createEAttribute(linearEClass, LINEAR__KERNEL_INITIALIZER);
+ createEAttribute(linearEClass, LINEAR__BIAS_INITIALIZER);
+
+ bilinearEClass = createEClass(BILINEAR);
+ createEAttribute(bilinearEClass, BILINEAR__IN1_FEATURES);
+ createEAttribute(bilinearEClass, BILINEAR__IN2_FEATURES);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ linear_layersEClass.getESuperTypes().add(theModulePackage.getModel());
+ identityEClass.getESuperTypes().add(this.getLinear_layers());
+ linear_layers_1EClass.getESuperTypes().add(this.getLinear_layers());
+ linearEClass.getESuperTypes().add(this.getLinear_layers_1());
+ bilinearEClass.getESuperTypes().add(this.getLinear_layers_1());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(linear_layersEClass, Linear_layers.class, "Linear_layers", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(identityEClass, Identity.class, "Identity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(linear_layers_1EClass, Linear_layers_1.class, "Linear_layers_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLinear_layers_1_Out_features(), theTypesPackage.getInteger(), "out_features", null, 1, 1, Linear_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLinear_layers_1_Bias(), theTypesPackage.getBoolean(), "bias", null, 0, 1, Linear_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(linearEClass, Linear.class, "Linear", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLinear_In_features(), theTypesPackage.getInteger(), "in_features", null, 0, 1, Linear.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLinear_Activation(), theTypesPackage.getString(), "activation", null, 0, 1, Linear.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLinear_Kernel_initializer(), theTypesPackage.getString(), "kernel_initializer", null, 0, 1, Linear.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLinear_Bias_initializer(), theTypesPackage.getString(), "bias_initializer", null, 0, 1, Linear.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(bilinearEClass, Bilinear.class, "Bilinear", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getBilinear_In1_features(), theTypesPackage.getInteger(), "in1_features", null, 1, 1, Bilinear.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getBilinear_In2_features(), theTypesPackage.getInteger(), "in2_features", null, 1, 1, Bilinear.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ }
+
+} //Linear_layersPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/Linear_layers_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/Linear_layers_1Impl.java
new file mode 100644
index 0000000..a07819d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/impl/Linear_layers_1Impl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Linear layers 1</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layers_1Impl#getOut_features <em>Out features</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layers_1Impl#isBias <em>Bias</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Linear_layers_1Impl extends Linear_layersImpl implements Linear_layers_1 {
+ /**
+ * The default value of the '{@link #getOut_features() <em>Out features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOut_features()
+ * @generated
+ * @ordered
+ */
+ protected static final int OUT_FEATURES_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getOut_features() <em>Out features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOut_features()
+ * @generated
+ * @ordered
+ */
+ protected int out_features = OUT_FEATURES_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isBias() <em>Bias</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBias()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean BIAS_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isBias() <em>Bias</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBias()
+ * @generated
+ * @ordered
+ */
+ protected boolean bias = BIAS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Linear_layers_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Linear_layersPackage.Literals.LINEAR_LAYERS_1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getOut_features() {
+ return out_features;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setOut_features(int newOut_features) {
+ int oldOut_features = out_features;
+ out_features = newOut_features;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Linear_layersPackage.LINEAR_LAYERS_1__OUT_FEATURES, oldOut_features, out_features));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isBias() {
+ return bias;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBias(boolean newBias) {
+ boolean oldBias = bias;
+ bias = newBias;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Linear_layersPackage.LINEAR_LAYERS_1__BIAS, oldBias, bias));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Linear_layersPackage.LINEAR_LAYERS_1__OUT_FEATURES:
+ return getOut_features();
+ case Linear_layersPackage.LINEAR_LAYERS_1__BIAS:
+ return isBias();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Linear_layersPackage.LINEAR_LAYERS_1__OUT_FEATURES:
+ setOut_features((Integer)newValue);
+ return;
+ case Linear_layersPackage.LINEAR_LAYERS_1__BIAS:
+ setBias((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Linear_layersPackage.LINEAR_LAYERS_1__OUT_FEATURES:
+ setOut_features(OUT_FEATURES_EDEFAULT);
+ return;
+ case Linear_layersPackage.LINEAR_LAYERS_1__BIAS:
+ setBias(BIAS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Linear_layersPackage.LINEAR_LAYERS_1__OUT_FEATURES:
+ return out_features != OUT_FEATURES_EDEFAULT;
+ case Linear_layersPackage.LINEAR_LAYERS_1__BIAS:
+ return bias != BIAS_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (out_features: "); //$NON-NLS-1$
+ result.append(out_features);
+ result.append(", bias: "); //$NON-NLS-1$
+ result.append(bias);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Linear_layers_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/util/Linear_layersAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/util/Linear_layersAdapterFactory.java
new file mode 100644
index 0000000..d3b2272
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/util/Linear_layersAdapterFactory.java
@@ -0,0 +1,220 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.*;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage
+ * @generated
+ */
+public class Linear_layersAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Linear_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Linear_layersAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Linear_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Linear_layersSwitch<Adapter> modelSwitch =
+ new Linear_layersSwitch<Adapter>() {
+ @Override
+ public Adapter caseLinear_layers(Linear_layers object) {
+ return createLinear_layersAdapter();
+ }
+ @Override
+ public Adapter caseIdentity(Identity object) {
+ return createIdentityAdapter();
+ }
+ @Override
+ public Adapter caseLinear_layers_1(Linear_layers_1 object) {
+ return createLinear_layers_1Adapter();
+ }
+ @Override
+ public Adapter caseLinear(Linear object) {
+ return createLinearAdapter();
+ }
+ @Override
+ public Adapter caseBilinear(Bilinear object) {
+ return createBilinearAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers <em>Linear layers</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers
+ * @generated
+ */
+ public Adapter createLinear_layersAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Identity <em>Identity</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Identity
+ * @generated
+ */
+ public Adapter createIdentityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers_1 <em>Linear layers 1</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layers_1
+ * @generated
+ */
+ public Adapter createLinear_layers_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear <em>Linear</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear
+ * @generated
+ */
+ public Adapter createLinearAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Bilinear <em>Bilinear</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Bilinear
+ * @generated
+ */
+ public Adapter createBilinearAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Linear_layersAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/util/Linear_layersSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/util/Linear_layersSwitch.java
new file mode 100644
index 0000000..4f3e661
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Linear_layers/util/Linear_layersSwitch.java
@@ -0,0 +1,230 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.*;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage
+ * @generated
+ */
+public class Linear_layersSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Linear_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Linear_layersSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Linear_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Linear_layersPackage.LINEAR_LAYERS: {
+ Linear_layers linear_layers = (Linear_layers)theEObject;
+ T result = caseLinear_layers(linear_layers);
+ if (result == null) result = caseModel(linear_layers);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Linear_layersPackage.IDENTITY: {
+ Identity identity = (Identity)theEObject;
+ T result = caseIdentity(identity);
+ if (result == null) result = caseLinear_layers(identity);
+ if (result == null) result = caseModel(identity);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Linear_layersPackage.LINEAR_LAYERS_1: {
+ Linear_layers_1 linear_layers_1 = (Linear_layers_1)theEObject;
+ T result = caseLinear_layers_1(linear_layers_1);
+ if (result == null) result = caseLinear_layers(linear_layers_1);
+ if (result == null) result = caseModel(linear_layers_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Linear_layersPackage.LINEAR: {
+ Linear linear = (Linear)theEObject;
+ T result = caseLinear(linear);
+ if (result == null) result = caseLinear_layers_1(linear);
+ if (result == null) result = caseLinear_layers(linear);
+ if (result == null) result = caseModel(linear);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Linear_layersPackage.BILINEAR: {
+ Bilinear bilinear = (Bilinear)theEObject;
+ T result = caseBilinear(bilinear);
+ if (result == null) result = caseLinear_layers_1(bilinear);
+ if (result == null) result = caseLinear_layers(bilinear);
+ if (result == null) result = caseModel(bilinear);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Linear layers</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Linear layers</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLinear_layers(Linear_layers object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Identity</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Identity</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIdentity(Identity object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Linear layers 1</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Linear layers 1</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLinear_layers_1(Linear_layers_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Linear</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Linear</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLinear(Linear object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Bilinear</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Bilinear</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBilinear(Bilinear object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Linear_layersSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/BCELoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/BCELoss.java
new file mode 100644
index 0000000..51f1891
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/BCELoss.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>BCE Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getBCELoss()
+ * @model
+ * @generated
+ */
+public interface BCELoss extends Loss_functions_1_2 {
+} // BCELoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/BCEWithLogitsLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/BCEWithLogitsLoss.java
new file mode 100644
index 0000000..116ef52
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/BCEWithLogitsLoss.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>BCE With Logits Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCEWithLogitsLoss#getPos_weight <em>Pos weight</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getBCEWithLogitsLoss()
+ * @model
+ * @generated
+ */
+public interface BCEWithLogitsLoss extends Loss_functions_1_2 {
+ /**
+ * Returns the value of the '<em><b>Pos weight</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pos weight</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pos weight</em>' reference.
+ * @see #setPos_weight(Tensor)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getBCEWithLogitsLoss_Pos_weight()
+ * @model ordered="false"
+ * @generated
+ */
+ Tensor getPos_weight();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCEWithLogitsLoss#getPos_weight <em>Pos weight</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pos weight</em>' reference.
+ * @see #getPos_weight()
+ * @generated
+ */
+ void setPos_weight(Tensor value);
+
+} // BCEWithLogitsLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/CTCLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/CTCLoss.java
new file mode 100644
index 0000000..2ef7c84
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/CTCLoss.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CTC Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CTCLoss#getBlank <em>Blank</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CTCLoss#isZero_infinity <em>Zero infinity</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getCTCLoss()
+ * @model
+ * @generated
+ */
+public interface CTCLoss extends Loss_functions {
+ /**
+ * Returns the value of the '<em><b>Blank</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Blank</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Blank</em>' attribute.
+ * @see #setBlank(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getCTCLoss_Blank()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getBlank();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CTCLoss#getBlank <em>Blank</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Blank</em>' attribute.
+ * @see #getBlank()
+ * @generated
+ */
+ void setBlank(int value);
+
+ /**
+ * Returns the value of the '<em><b>Zero infinity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Zero infinity</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Zero infinity</em>' attribute.
+ * @see #setZero_infinity(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getCTCLoss_Zero_infinity()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isZero_infinity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CTCLoss#isZero_infinity <em>Zero infinity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Zero infinity</em>' attribute.
+ * @see #isZero_infinity()
+ * @generated
+ */
+ void setZero_infinity(boolean value);
+
+} // CTCLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/CosineEmbeddingLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/CosineEmbeddingLoss.java
new file mode 100644
index 0000000..093229c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/CosineEmbeddingLoss.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cosine Embedding Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getCosineEmbeddingLoss()
+ * @model
+ * @generated
+ */
+public interface CosineEmbeddingLoss extends Loss_functions_1_1 {
+} // CosineEmbeddingLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/CrossEntropyLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/CrossEntropyLoss.java
new file mode 100644
index 0000000..512723f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/CrossEntropyLoss.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Cross Entropy Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getCrossEntropyLoss()
+ * @model
+ * @generated
+ */
+public interface CrossEntropyLoss extends Loss_functions_1_2_1 {
+} // CrossEntropyLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/HingeEmbeddingLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/HingeEmbeddingLoss.java
new file mode 100644
index 0000000..9af4a0c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/HingeEmbeddingLoss.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Hinge Embedding Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getHingeEmbeddingLoss()
+ * @model
+ * @generated
+ */
+public interface HingeEmbeddingLoss extends Loss_functions_1_1 {
+} // HingeEmbeddingLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/KLDivLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/KLDivLoss.java
new file mode 100644
index 0000000..0dfa10e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/KLDivLoss.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>KL Div Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getKLDivLoss()
+ * @model
+ * @generated
+ */
+public interface KLDivLoss extends Loss_functions_1 {
+} // KLDivLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/L1Loss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/L1Loss.java
new file mode 100644
index 0000000..ad57e4f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/L1Loss.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>L1 Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getL1Loss()
+ * @model
+ * @generated
+ */
+public interface L1Loss extends Loss_functions_1 {
+} // L1Loss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions.java
new file mode 100644
index 0000000..ccc5edc
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Loss functions</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions#getReduction <em>Reduction</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getLoss_functions()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Loss_functions extends Model {
+ /**
+ * Returns the value of the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Reduction</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Reduction</em>' attribute.
+ * @see #setReduction(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getLoss_functions_Reduction()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getReduction();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions#getReduction <em>Reduction</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Reduction</em>' attribute.
+ * @see #getReduction()
+ * @generated
+ */
+ void setReduction(String value);
+
+} // Loss_functions
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functionsFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functionsFactory.java
new file mode 100644
index 0000000..409b196
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functionsFactory.java
@@ -0,0 +1,195 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage
+ * @generated
+ */
+public interface Loss_functionsFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Loss_functionsFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>L1 Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>L1 Loss</em>'.
+ * @generated
+ */
+ L1Loss createL1Loss();
+
+ /**
+ * Returns a new object of class '<em>MSE Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>MSE Loss</em>'.
+ * @generated
+ */
+ MSELoss createMSELoss();
+
+ /**
+ * Returns a new object of class '<em>CTC Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CTC Loss</em>'.
+ * @generated
+ */
+ CTCLoss createCTCLoss();
+
+ /**
+ * Returns a new object of class '<em>KL Div Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>KL Div Loss</em>'.
+ * @generated
+ */
+ KLDivLoss createKLDivLoss();
+
+ /**
+ * Returns a new object of class '<em>Multi Label Margin Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multi Label Margin Loss</em>'.
+ * @generated
+ */
+ MultiLabelMarginLoss createMultiLabelMarginLoss();
+
+ /**
+ * Returns a new object of class '<em>Loss functions 11</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Loss functions 11</em>'.
+ * @generated
+ */
+ Loss_functions_1_1 createLoss_functions_1_1();
+
+ /**
+ * Returns a new object of class '<em>Loss functions 12</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Loss functions 12</em>'.
+ * @generated
+ */
+ Loss_functions_1_2 createLoss_functions_1_2();
+
+ /**
+ * Returns a new object of class '<em>Cosine Embedding Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cosine Embedding Loss</em>'.
+ * @generated
+ */
+ CosineEmbeddingLoss createCosineEmbeddingLoss();
+
+ /**
+ * Returns a new object of class '<em>Margin Ranking Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Margin Ranking Loss</em>'.
+ * @generated
+ */
+ MarginRankingLoss createMarginRankingLoss();
+
+ /**
+ * Returns a new object of class '<em>Hinge Embedding Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hinge Embedding Loss</em>'.
+ * @generated
+ */
+ HingeEmbeddingLoss createHingeEmbeddingLoss();
+
+ /**
+ * Returns a new object of class '<em>BCE Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>BCE Loss</em>'.
+ * @generated
+ */
+ BCELoss createBCELoss();
+
+ /**
+ * Returns a new object of class '<em>Multi Margin Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multi Margin Loss</em>'.
+ * @generated
+ */
+ MultiMarginLoss createMultiMarginLoss();
+
+ /**
+ * Returns a new object of class '<em>Triplet Margin Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Triplet Margin Loss</em>'.
+ * @generated
+ */
+ TripletMarginLoss createTripletMarginLoss();
+
+ /**
+ * Returns a new object of class '<em>Cross Entropy Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Cross Entropy Loss</em>'.
+ * @generated
+ */
+ CrossEntropyLoss createCrossEntropyLoss();
+
+ /**
+ * Returns a new object of class '<em>NLL Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>NLL Loss</em>'.
+ * @generated
+ */
+ NLLLoss createNLLLoss();
+
+ /**
+ * Returns a new object of class '<em>Poisson NLL Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Poisson NLL Loss</em>'.
+ * @generated
+ */
+ PoissonNLLLoss createPoissonNLLLoss();
+
+ /**
+ * Returns a new object of class '<em>BCE With Logits Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>BCE With Logits Loss</em>'.
+ * @generated
+ */
+ BCEWithLogitsLoss createBCEWithLogitsLoss();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Loss_functionsPackage getLoss_functionsPackage();
+
+} //Loss_functionsFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functionsPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functionsPackage.java
new file mode 100644
index 0000000..d84e07c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functionsPackage.java
@@ -0,0 +1,3495 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Loss_functionsPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Loss_functions"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/loss/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Loss_functions"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Loss_functionsPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsImpl <em>Loss functions</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getLoss_functions()
+ * @generated
+ */
+ int LOSS_FUNCTIONS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS__REDUCTION = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Loss functions</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Loss functions</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1Impl <em>Loss functions 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getLoss_functions_1()
+ * @generated
+ */
+ int LOSS_FUNCTIONS_1 = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_1__BASE_CLASS = LOSS_FUNCTIONS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_1__NAME = LOSS_FUNCTIONS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_1__DATA = LOSS_FUNCTIONS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_1__REQUIRES_GRAD = LOSS_FUNCTIONS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_1__SUB_MODULE = LOSS_FUNCTIONS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_1__OPTIMIZER = LOSS_FUNCTIONS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_1__LOSS = LOSS_FUNCTIONS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_1__REDUCTION = LOSS_FUNCTIONS__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_1__SIZE_AVERAGE = LOSS_FUNCTIONS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_1__REDUCE = LOSS_FUNCTIONS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Loss functions 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_1_FEATURE_COUNT = LOSS_FUNCTIONS_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Loss functions 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_1_OPERATION_COUNT = LOSS_FUNCTIONS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.L1LossImpl <em>L1 Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.L1LossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getL1Loss()
+ * @generated
+ */
+ int L1_LOSS = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_LOSS__BASE_CLASS = LOSS_FUNCTIONS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_LOSS__NAME = LOSS_FUNCTIONS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_LOSS__DATA = LOSS_FUNCTIONS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_LOSS__SUB_MODULE = LOSS_FUNCTIONS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_LOSS__OPTIMIZER = LOSS_FUNCTIONS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_LOSS__LOSS = LOSS_FUNCTIONS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_LOSS__REDUCTION = LOSS_FUNCTIONS_1__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_LOSS__SIZE_AVERAGE = LOSS_FUNCTIONS_1__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_LOSS__REDUCE = LOSS_FUNCTIONS_1__REDUCE;
+
+ /**
+ * The number of structural features of the '<em>L1 Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>L1 Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int L1_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MSELossImpl <em>MSE Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MSELossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getMSELoss()
+ * @generated
+ */
+ int MSE_LOSS = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MSE_LOSS__BASE_CLASS = LOSS_FUNCTIONS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MSE_LOSS__NAME = LOSS_FUNCTIONS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MSE_LOSS__DATA = LOSS_FUNCTIONS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MSE_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MSE_LOSS__SUB_MODULE = LOSS_FUNCTIONS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MSE_LOSS__OPTIMIZER = LOSS_FUNCTIONS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MSE_LOSS__LOSS = LOSS_FUNCTIONS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MSE_LOSS__REDUCTION = LOSS_FUNCTIONS_1__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MSE_LOSS__SIZE_AVERAGE = LOSS_FUNCTIONS_1__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MSE_LOSS__REDUCE = LOSS_FUNCTIONS_1__REDUCE;
+
+ /**
+ * The number of structural features of the '<em>MSE Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MSE_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>MSE Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MSE_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.CTCLossImpl <em>CTC Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.CTCLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getCTCLoss()
+ * @generated
+ */
+ int CTC_LOSS = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTC_LOSS__BASE_CLASS = LOSS_FUNCTIONS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTC_LOSS__NAME = LOSS_FUNCTIONS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTC_LOSS__DATA = LOSS_FUNCTIONS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTC_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTC_LOSS__SUB_MODULE = LOSS_FUNCTIONS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTC_LOSS__OPTIMIZER = LOSS_FUNCTIONS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTC_LOSS__LOSS = LOSS_FUNCTIONS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTC_LOSS__REDUCTION = LOSS_FUNCTIONS__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Blank</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTC_LOSS__BLANK = LOSS_FUNCTIONS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Zero infinity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTC_LOSS__ZERO_INFINITY = LOSS_FUNCTIONS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>CTC Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTC_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>CTC Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CTC_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.KLDivLossImpl <em>KL Div Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.KLDivLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getKLDivLoss()
+ * @generated
+ */
+ int KL_DIV_LOSS = 5;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KL_DIV_LOSS__BASE_CLASS = LOSS_FUNCTIONS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KL_DIV_LOSS__NAME = LOSS_FUNCTIONS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KL_DIV_LOSS__DATA = LOSS_FUNCTIONS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KL_DIV_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KL_DIV_LOSS__SUB_MODULE = LOSS_FUNCTIONS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KL_DIV_LOSS__OPTIMIZER = LOSS_FUNCTIONS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KL_DIV_LOSS__LOSS = LOSS_FUNCTIONS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KL_DIV_LOSS__REDUCTION = LOSS_FUNCTIONS_1__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KL_DIV_LOSS__SIZE_AVERAGE = LOSS_FUNCTIONS_1__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KL_DIV_LOSS__REDUCE = LOSS_FUNCTIONS_1__REDUCE;
+
+ /**
+ * The number of structural features of the '<em>KL Div Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KL_DIV_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>KL Div Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int KL_DIV_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MultiLabelMarginLossImpl <em>Multi Label Margin Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MultiLabelMarginLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getMultiLabelMarginLoss()
+ * @generated
+ */
+ int MULTI_LABEL_MARGIN_LOSS = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_MARGIN_LOSS__BASE_CLASS = LOSS_FUNCTIONS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_MARGIN_LOSS__NAME = LOSS_FUNCTIONS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_MARGIN_LOSS__DATA = LOSS_FUNCTIONS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_MARGIN_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_MARGIN_LOSS__SUB_MODULE = LOSS_FUNCTIONS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_MARGIN_LOSS__OPTIMIZER = LOSS_FUNCTIONS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_MARGIN_LOSS__LOSS = LOSS_FUNCTIONS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_MARGIN_LOSS__REDUCTION = LOSS_FUNCTIONS_1__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_MARGIN_LOSS__SIZE_AVERAGE = LOSS_FUNCTIONS_1__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_MARGIN_LOSS__REDUCE = LOSS_FUNCTIONS_1__REDUCE;
+
+ /**
+ * The number of structural features of the '<em>Multi Label Margin Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_MARGIN_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Multi Label Margin Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_LABEL_MARGIN_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_1Impl <em>Loss functions 11</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getLoss_functions_1_1()
+ * @generated
+ */
+ int LOSS_FUNCTIONS_11 = 7;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_11__BASE_CLASS = LOSS_FUNCTIONS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_11__NAME = LOSS_FUNCTIONS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_11__DATA = LOSS_FUNCTIONS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_11__REQUIRES_GRAD = LOSS_FUNCTIONS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_11__SUB_MODULE = LOSS_FUNCTIONS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_11__OPTIMIZER = LOSS_FUNCTIONS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_11__LOSS = LOSS_FUNCTIONS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_11__REDUCTION = LOSS_FUNCTIONS_1__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_11__SIZE_AVERAGE = LOSS_FUNCTIONS_1__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_11__REDUCE = LOSS_FUNCTIONS_1__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Margin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_11__MARGIN = LOSS_FUNCTIONS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Loss functions 11</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_11_FEATURE_COUNT = LOSS_FUNCTIONS_1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Loss functions 11</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_11_OPERATION_COUNT = LOSS_FUNCTIONS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_2Impl <em>Loss functions 12</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_2Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getLoss_functions_1_2()
+ * @generated
+ */
+ int LOSS_FUNCTIONS_12 = 8;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_12__BASE_CLASS = LOSS_FUNCTIONS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_12__NAME = LOSS_FUNCTIONS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_12__DATA = LOSS_FUNCTIONS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_12__REQUIRES_GRAD = LOSS_FUNCTIONS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_12__SUB_MODULE = LOSS_FUNCTIONS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_12__OPTIMIZER = LOSS_FUNCTIONS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_12__LOSS = LOSS_FUNCTIONS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_12__REDUCTION = LOSS_FUNCTIONS_1__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_12__SIZE_AVERAGE = LOSS_FUNCTIONS_1__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_12__REDUCE = LOSS_FUNCTIONS_1__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Weight</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_12__WEIGHT = LOSS_FUNCTIONS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Loss functions 12</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_12_FEATURE_COUNT = LOSS_FUNCTIONS_1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Loss functions 12</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_12_OPERATION_COUNT = LOSS_FUNCTIONS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.CosineEmbeddingLossImpl <em>Cosine Embedding Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.CosineEmbeddingLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getCosineEmbeddingLoss()
+ * @generated
+ */
+ int COSINE_EMBEDDING_LOSS = 9;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_EMBEDDING_LOSS__BASE_CLASS = LOSS_FUNCTIONS_11__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_EMBEDDING_LOSS__NAME = LOSS_FUNCTIONS_11__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_EMBEDDING_LOSS__DATA = LOSS_FUNCTIONS_11__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_EMBEDDING_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS_11__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_EMBEDDING_LOSS__SUB_MODULE = LOSS_FUNCTIONS_11__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_EMBEDDING_LOSS__OPTIMIZER = LOSS_FUNCTIONS_11__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_EMBEDDING_LOSS__LOSS = LOSS_FUNCTIONS_11__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_EMBEDDING_LOSS__REDUCTION = LOSS_FUNCTIONS_11__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_EMBEDDING_LOSS__SIZE_AVERAGE = LOSS_FUNCTIONS_11__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_EMBEDDING_LOSS__REDUCE = LOSS_FUNCTIONS_11__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Margin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_EMBEDDING_LOSS__MARGIN = LOSS_FUNCTIONS_11__MARGIN;
+
+ /**
+ * The number of structural features of the '<em>Cosine Embedding Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_EMBEDDING_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_11_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Cosine Embedding Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COSINE_EMBEDDING_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_11_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MarginRankingLossImpl <em>Margin Ranking Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MarginRankingLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getMarginRankingLoss()
+ * @generated
+ */
+ int MARGIN_RANKING_LOSS = 10;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MARGIN_RANKING_LOSS__BASE_CLASS = LOSS_FUNCTIONS_11__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MARGIN_RANKING_LOSS__NAME = LOSS_FUNCTIONS_11__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MARGIN_RANKING_LOSS__DATA = LOSS_FUNCTIONS_11__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MARGIN_RANKING_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS_11__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MARGIN_RANKING_LOSS__SUB_MODULE = LOSS_FUNCTIONS_11__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MARGIN_RANKING_LOSS__OPTIMIZER = LOSS_FUNCTIONS_11__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MARGIN_RANKING_LOSS__LOSS = LOSS_FUNCTIONS_11__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MARGIN_RANKING_LOSS__REDUCTION = LOSS_FUNCTIONS_11__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MARGIN_RANKING_LOSS__SIZE_AVERAGE = LOSS_FUNCTIONS_11__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MARGIN_RANKING_LOSS__REDUCE = LOSS_FUNCTIONS_11__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Margin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MARGIN_RANKING_LOSS__MARGIN = LOSS_FUNCTIONS_11__MARGIN;
+
+ /**
+ * The number of structural features of the '<em>Margin Ranking Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MARGIN_RANKING_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_11_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Margin Ranking Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MARGIN_RANKING_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_11_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.HingeEmbeddingLossImpl <em>Hinge Embedding Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.HingeEmbeddingLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getHingeEmbeddingLoss()
+ * @generated
+ */
+ int HINGE_EMBEDDING_LOSS = 11;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HINGE_EMBEDDING_LOSS__BASE_CLASS = LOSS_FUNCTIONS_11__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HINGE_EMBEDDING_LOSS__NAME = LOSS_FUNCTIONS_11__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HINGE_EMBEDDING_LOSS__DATA = LOSS_FUNCTIONS_11__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HINGE_EMBEDDING_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS_11__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HINGE_EMBEDDING_LOSS__SUB_MODULE = LOSS_FUNCTIONS_11__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HINGE_EMBEDDING_LOSS__OPTIMIZER = LOSS_FUNCTIONS_11__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HINGE_EMBEDDING_LOSS__LOSS = LOSS_FUNCTIONS_11__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HINGE_EMBEDDING_LOSS__REDUCTION = LOSS_FUNCTIONS_11__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HINGE_EMBEDDING_LOSS__SIZE_AVERAGE = LOSS_FUNCTIONS_11__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HINGE_EMBEDDING_LOSS__REDUCE = LOSS_FUNCTIONS_11__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Margin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HINGE_EMBEDDING_LOSS__MARGIN = LOSS_FUNCTIONS_11__MARGIN;
+
+ /**
+ * The number of structural features of the '<em>Hinge Embedding Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HINGE_EMBEDDING_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_11_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Hinge Embedding Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HINGE_EMBEDDING_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_11_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.BCELossImpl <em>BCE Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.BCELossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getBCELoss()
+ * @generated
+ */
+ int BCE_LOSS = 12;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_LOSS__BASE_CLASS = LOSS_FUNCTIONS_12__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_LOSS__NAME = LOSS_FUNCTIONS_12__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_LOSS__DATA = LOSS_FUNCTIONS_12__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS_12__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_LOSS__SUB_MODULE = LOSS_FUNCTIONS_12__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_LOSS__OPTIMIZER = LOSS_FUNCTIONS_12__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_LOSS__LOSS = LOSS_FUNCTIONS_12__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_LOSS__REDUCTION = LOSS_FUNCTIONS_12__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_LOSS__SIZE_AVERAGE = LOSS_FUNCTIONS_12__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_LOSS__REDUCE = LOSS_FUNCTIONS_12__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Weight</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_LOSS__WEIGHT = LOSS_FUNCTIONS_12__WEIGHT;
+
+ /**
+ * The number of structural features of the '<em>BCE Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_12_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>BCE Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_12_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_1_1Impl <em>Loss functions 111</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_1_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getLoss_functions_1_1_1()
+ * @generated
+ */
+ int LOSS_FUNCTIONS_111 = 13;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_111__BASE_CLASS = LOSS_FUNCTIONS_11__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_111__NAME = LOSS_FUNCTIONS_11__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_111__DATA = LOSS_FUNCTIONS_11__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_111__REQUIRES_GRAD = LOSS_FUNCTIONS_11__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_111__SUB_MODULE = LOSS_FUNCTIONS_11__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_111__OPTIMIZER = LOSS_FUNCTIONS_11__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_111__LOSS = LOSS_FUNCTIONS_11__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_111__REDUCTION = LOSS_FUNCTIONS_11__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_111__SIZE_AVERAGE = LOSS_FUNCTIONS_11__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_111__REDUCE = LOSS_FUNCTIONS_11__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Margin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_111__MARGIN = LOSS_FUNCTIONS_11__MARGIN;
+
+ /**
+ * The feature id for the '<em><b>P</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_111__P = LOSS_FUNCTIONS_11_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Loss functions 111</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_111_FEATURE_COUNT = LOSS_FUNCTIONS_11_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Loss functions 111</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_111_OPERATION_COUNT = LOSS_FUNCTIONS_11_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MultiMarginLossImpl <em>Multi Margin Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MultiMarginLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getMultiMarginLoss()
+ * @generated
+ */
+ int MULTI_MARGIN_LOSS = 14;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS__BASE_CLASS = LOSS_FUNCTIONS_111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS__NAME = LOSS_FUNCTIONS_111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS__DATA = LOSS_FUNCTIONS_111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS_111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS__SUB_MODULE = LOSS_FUNCTIONS_111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS__OPTIMIZER = LOSS_FUNCTIONS_111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS__LOSS = LOSS_FUNCTIONS_111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS__REDUCTION = LOSS_FUNCTIONS_111__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS__SIZE_AVERAGE = LOSS_FUNCTIONS_111__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS__REDUCE = LOSS_FUNCTIONS_111__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Margin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS__MARGIN = LOSS_FUNCTIONS_111__MARGIN;
+
+ /**
+ * The feature id for the '<em><b>P</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS__P = LOSS_FUNCTIONS_111__P;
+
+ /**
+ * The feature id for the '<em><b>Weight</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS__WEIGHT = LOSS_FUNCTIONS_111_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Multi Margin Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_111_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Multi Margin Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTI_MARGIN_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_111_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.TripletMarginLossImpl <em>Triplet Margin Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.TripletMarginLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getTripletMarginLoss()
+ * @generated
+ */
+ int TRIPLET_MARGIN_LOSS = 15;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS__BASE_CLASS = LOSS_FUNCTIONS_111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS__NAME = LOSS_FUNCTIONS_111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS__DATA = LOSS_FUNCTIONS_111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS_111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS__SUB_MODULE = LOSS_FUNCTIONS_111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS__OPTIMIZER = LOSS_FUNCTIONS_111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS__LOSS = LOSS_FUNCTIONS_111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS__REDUCTION = LOSS_FUNCTIONS_111__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS__SIZE_AVERAGE = LOSS_FUNCTIONS_111__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS__REDUCE = LOSS_FUNCTIONS_111__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Margin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS__MARGIN = LOSS_FUNCTIONS_111__MARGIN;
+
+ /**
+ * The feature id for the '<em><b>P</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS__P = LOSS_FUNCTIONS_111__P;
+
+ /**
+ * The feature id for the '<em><b>Swap</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS__SWAP = LOSS_FUNCTIONS_111_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Triplet Margin Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_111_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Triplet Margin Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRIPLET_MARGIN_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_111_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_2_1Impl <em>Loss functions 121</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_2_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getLoss_functions_1_2_1()
+ * @generated
+ */
+ int LOSS_FUNCTIONS_121 = 16;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_121__BASE_CLASS = LOSS_FUNCTIONS_12__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_121__NAME = LOSS_FUNCTIONS_12__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_121__DATA = LOSS_FUNCTIONS_12__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_121__REQUIRES_GRAD = LOSS_FUNCTIONS_12__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_121__SUB_MODULE = LOSS_FUNCTIONS_12__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_121__OPTIMIZER = LOSS_FUNCTIONS_12__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_121__LOSS = LOSS_FUNCTIONS_12__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_121__REDUCTION = LOSS_FUNCTIONS_12__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_121__SIZE_AVERAGE = LOSS_FUNCTIONS_12__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_121__REDUCE = LOSS_FUNCTIONS_12__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Weight</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_121__WEIGHT = LOSS_FUNCTIONS_12__WEIGHT;
+
+ /**
+ * The feature id for the '<em><b>Ignore index</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_121__IGNORE_INDEX = LOSS_FUNCTIONS_12_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Loss functions 121</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_121_FEATURE_COUNT = LOSS_FUNCTIONS_12_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Loss functions 121</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOSS_FUNCTIONS_121_OPERATION_COUNT = LOSS_FUNCTIONS_12_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.CrossEntropyLossImpl <em>Cross Entropy Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.CrossEntropyLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getCrossEntropyLoss()
+ * @generated
+ */
+ int CROSS_ENTROPY_LOSS = 17;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CROSS_ENTROPY_LOSS__BASE_CLASS = LOSS_FUNCTIONS_121__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CROSS_ENTROPY_LOSS__NAME = LOSS_FUNCTIONS_121__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CROSS_ENTROPY_LOSS__DATA = LOSS_FUNCTIONS_121__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CROSS_ENTROPY_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS_121__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CROSS_ENTROPY_LOSS__SUB_MODULE = LOSS_FUNCTIONS_121__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CROSS_ENTROPY_LOSS__OPTIMIZER = LOSS_FUNCTIONS_121__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CROSS_ENTROPY_LOSS__LOSS = LOSS_FUNCTIONS_121__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CROSS_ENTROPY_LOSS__REDUCTION = LOSS_FUNCTIONS_121__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CROSS_ENTROPY_LOSS__SIZE_AVERAGE = LOSS_FUNCTIONS_121__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CROSS_ENTROPY_LOSS__REDUCE = LOSS_FUNCTIONS_121__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Weight</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CROSS_ENTROPY_LOSS__WEIGHT = LOSS_FUNCTIONS_121__WEIGHT;
+
+ /**
+ * The feature id for the '<em><b>Ignore index</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CROSS_ENTROPY_LOSS__IGNORE_INDEX = LOSS_FUNCTIONS_121__IGNORE_INDEX;
+
+ /**
+ * The number of structural features of the '<em>Cross Entropy Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CROSS_ENTROPY_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_121_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Cross Entropy Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CROSS_ENTROPY_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_121_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.NLLLossImpl <em>NLL Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.NLLLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getNLLLoss()
+ * @generated
+ */
+ int NLL_LOSS = 18;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NLL_LOSS__BASE_CLASS = LOSS_FUNCTIONS_121__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NLL_LOSS__NAME = LOSS_FUNCTIONS_121__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NLL_LOSS__DATA = LOSS_FUNCTIONS_121__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NLL_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS_121__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NLL_LOSS__SUB_MODULE = LOSS_FUNCTIONS_121__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NLL_LOSS__OPTIMIZER = LOSS_FUNCTIONS_121__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NLL_LOSS__LOSS = LOSS_FUNCTIONS_121__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NLL_LOSS__REDUCTION = LOSS_FUNCTIONS_121__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NLL_LOSS__SIZE_AVERAGE = LOSS_FUNCTIONS_121__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NLL_LOSS__REDUCE = LOSS_FUNCTIONS_121__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Weight</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NLL_LOSS__WEIGHT = LOSS_FUNCTIONS_121__WEIGHT;
+
+ /**
+ * The feature id for the '<em><b>Ignore index</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NLL_LOSS__IGNORE_INDEX = LOSS_FUNCTIONS_121__IGNORE_INDEX;
+
+ /**
+ * The number of structural features of the '<em>NLL Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NLL_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_121_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>NLL Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NLL_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_121_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.PoissonNLLLossImpl <em>Poisson NLL Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.PoissonNLLLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getPoissonNLLLoss()
+ * @generated
+ */
+ int POISSON_NLL_LOSS = 19;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS__BASE_CLASS = LOSS_FUNCTIONS_12__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS__NAME = LOSS_FUNCTIONS_12__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS__DATA = LOSS_FUNCTIONS_12__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS_12__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS__SUB_MODULE = LOSS_FUNCTIONS_12__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS__OPTIMIZER = LOSS_FUNCTIONS_12__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS__LOSS = LOSS_FUNCTIONS_12__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS__REDUCTION = LOSS_FUNCTIONS_12__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS__SIZE_AVERAGE = LOSS_FUNCTIONS_12__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS__REDUCE = LOSS_FUNCTIONS_12__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Weight</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS__WEIGHT = LOSS_FUNCTIONS_12__WEIGHT;
+
+ /**
+ * The feature id for the '<em><b>Log input</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS__LOG_INPUT = LOSS_FUNCTIONS_12_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Full</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS__FULL = LOSS_FUNCTIONS_12_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS__EPS = LOSS_FUNCTIONS_12_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Poisson NLL Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_12_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the '<em>Poisson NLL Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POISSON_NLL_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_12_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.BCEWithLogitsLossImpl <em>BCE With Logits Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.BCEWithLogitsLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getBCEWithLogitsLoss()
+ * @generated
+ */
+ int BCE_WITH_LOGITS_LOSS = 20;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_WITH_LOGITS_LOSS__BASE_CLASS = LOSS_FUNCTIONS_12__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_WITH_LOGITS_LOSS__NAME = LOSS_FUNCTIONS_12__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_WITH_LOGITS_LOSS__DATA = LOSS_FUNCTIONS_12__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_WITH_LOGITS_LOSS__REQUIRES_GRAD = LOSS_FUNCTIONS_12__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_WITH_LOGITS_LOSS__SUB_MODULE = LOSS_FUNCTIONS_12__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_WITH_LOGITS_LOSS__OPTIMIZER = LOSS_FUNCTIONS_12__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_WITH_LOGITS_LOSS__LOSS = LOSS_FUNCTIONS_12__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Reduction</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_WITH_LOGITS_LOSS__REDUCTION = LOSS_FUNCTIONS_12__REDUCTION;
+
+ /**
+ * The feature id for the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_WITH_LOGITS_LOSS__SIZE_AVERAGE = LOSS_FUNCTIONS_12__SIZE_AVERAGE;
+
+ /**
+ * The feature id for the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_WITH_LOGITS_LOSS__REDUCE = LOSS_FUNCTIONS_12__REDUCE;
+
+ /**
+ * The feature id for the '<em><b>Weight</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_WITH_LOGITS_LOSS__WEIGHT = LOSS_FUNCTIONS_12__WEIGHT;
+
+ /**
+ * The feature id for the '<em><b>Pos weight</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_WITH_LOGITS_LOSS__POS_WEIGHT = LOSS_FUNCTIONS_12_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>BCE With Logits Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_WITH_LOGITS_LOSS_FEATURE_COUNT = LOSS_FUNCTIONS_12_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>BCE With Logits Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BCE_WITH_LOGITS_LOSS_OPERATION_COUNT = LOSS_FUNCTIONS_12_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions <em>Loss functions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Loss functions</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions
+ * @generated
+ */
+ EClass getLoss_functions();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions#getReduction <em>Reduction</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Reduction</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions#getReduction()
+ * @see #getLoss_functions()
+ * @generated
+ */
+ EAttribute getLoss_functions_Reduction();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1 <em>Loss functions 1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Loss functions 1</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1
+ * @generated
+ */
+ EClass getLoss_functions_1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1#isSize_average <em>Size average</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Size average</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1#isSize_average()
+ * @see #getLoss_functions_1()
+ * @generated
+ */
+ EAttribute getLoss_functions_1_Size_average();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1#isReduce <em>Reduce</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Reduce</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1#isReduce()
+ * @see #getLoss_functions_1()
+ * @generated
+ */
+ EAttribute getLoss_functions_1_Reduce();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.L1Loss <em>L1 Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>L1 Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.L1Loss
+ * @generated
+ */
+ EClass getL1Loss();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MSELoss <em>MSE Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>MSE Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MSELoss
+ * @generated
+ */
+ EClass getMSELoss();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CTCLoss <em>CTC Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CTC Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CTCLoss
+ * @generated
+ */
+ EClass getCTCLoss();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CTCLoss#getBlank <em>Blank</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Blank</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CTCLoss#getBlank()
+ * @see #getCTCLoss()
+ * @generated
+ */
+ EAttribute getCTCLoss_Blank();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CTCLoss#isZero_infinity <em>Zero infinity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Zero infinity</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CTCLoss#isZero_infinity()
+ * @see #getCTCLoss()
+ * @generated
+ */
+ EAttribute getCTCLoss_Zero_infinity();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.KLDivLoss <em>KL Div Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>KL Div Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.KLDivLoss
+ * @generated
+ */
+ EClass getKLDivLoss();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiLabelMarginLoss <em>Multi Label Margin Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multi Label Margin Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiLabelMarginLoss
+ * @generated
+ */
+ EClass getMultiLabelMarginLoss();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1 <em>Loss functions 11</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Loss functions 11</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1
+ * @generated
+ */
+ EClass getLoss_functions_1_1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1#getMargin <em>Margin</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Margin</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1#getMargin()
+ * @see #getLoss_functions_1_1()
+ * @generated
+ */
+ EAttribute getLoss_functions_1_1_Margin();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2 <em>Loss functions 12</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Loss functions 12</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2
+ * @generated
+ */
+ EClass getLoss_functions_1_2();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2#getWeight <em>Weight</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Weight</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2#getWeight()
+ * @see #getLoss_functions_1_2()
+ * @generated
+ */
+ EReference getLoss_functions_1_2_Weight();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CosineEmbeddingLoss <em>Cosine Embedding Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cosine Embedding Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CosineEmbeddingLoss
+ * @generated
+ */
+ EClass getCosineEmbeddingLoss();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MarginRankingLoss <em>Margin Ranking Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Margin Ranking Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MarginRankingLoss
+ * @generated
+ */
+ EClass getMarginRankingLoss();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.HingeEmbeddingLoss <em>Hinge Embedding Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hinge Embedding Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.HingeEmbeddingLoss
+ * @generated
+ */
+ EClass getHingeEmbeddingLoss();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCELoss <em>BCE Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>BCE Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCELoss
+ * @generated
+ */
+ EClass getBCELoss();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1_1 <em>Loss functions 111</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Loss functions 111</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1_1
+ * @generated
+ */
+ EClass getLoss_functions_1_1_1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1_1#getP <em>P</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>P</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1_1#getP()
+ * @see #getLoss_functions_1_1_1()
+ * @generated
+ */
+ EAttribute getLoss_functions_1_1_1_P();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiMarginLoss <em>Multi Margin Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multi Margin Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiMarginLoss
+ * @generated
+ */
+ EClass getMultiMarginLoss();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiMarginLoss#getWeight <em>Weight</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Weight</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiMarginLoss#getWeight()
+ * @see #getMultiMarginLoss()
+ * @generated
+ */
+ EReference getMultiMarginLoss_Weight();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.TripletMarginLoss <em>Triplet Margin Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Triplet Margin Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.TripletMarginLoss
+ * @generated
+ */
+ EClass getTripletMarginLoss();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.TripletMarginLoss#isSwap <em>Swap</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Swap</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.TripletMarginLoss#isSwap()
+ * @see #getTripletMarginLoss()
+ * @generated
+ */
+ EAttribute getTripletMarginLoss_Swap();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2_1 <em>Loss functions 121</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Loss functions 121</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2_1
+ * @generated
+ */
+ EClass getLoss_functions_1_2_1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2_1#getIgnore_index <em>Ignore index</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Ignore index</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2_1#getIgnore_index()
+ * @see #getLoss_functions_1_2_1()
+ * @generated
+ */
+ EAttribute getLoss_functions_1_2_1_Ignore_index();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CrossEntropyLoss <em>Cross Entropy Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Cross Entropy Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CrossEntropyLoss
+ * @generated
+ */
+ EClass getCrossEntropyLoss();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.NLLLoss <em>NLL Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>NLL Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.NLLLoss
+ * @generated
+ */
+ EClass getNLLLoss();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss <em>Poisson NLL Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Poisson NLL Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss
+ * @generated
+ */
+ EClass getPoissonNLLLoss();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss#isLog_input <em>Log input</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Log input</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss#isLog_input()
+ * @see #getPoissonNLLLoss()
+ * @generated
+ */
+ EAttribute getPoissonNLLLoss_Log_input();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss#isFull <em>Full</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Full</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss#isFull()
+ * @see #getPoissonNLLLoss()
+ * @generated
+ */
+ EAttribute getPoissonNLLLoss_Full();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss#getEps <em>Eps</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Eps</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss#getEps()
+ * @see #getPoissonNLLLoss()
+ * @generated
+ */
+ EAttribute getPoissonNLLLoss_Eps();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCEWithLogitsLoss <em>BCE With Logits Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>BCE With Logits Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCEWithLogitsLoss
+ * @generated
+ */
+ EClass getBCEWithLogitsLoss();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCEWithLogitsLoss#getPos_weight <em>Pos weight</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Pos weight</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCEWithLogitsLoss#getPos_weight()
+ * @see #getBCEWithLogitsLoss()
+ * @generated
+ */
+ EReference getBCEWithLogitsLoss_Pos_weight();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Loss_functionsFactory getLoss_functionsFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsImpl <em>Loss functions</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getLoss_functions()
+ * @generated
+ */
+ EClass LOSS_FUNCTIONS = eINSTANCE.getLoss_functions();
+
+ /**
+ * The meta object literal for the '<em><b>Reduction</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOSS_FUNCTIONS__REDUCTION = eINSTANCE.getLoss_functions_Reduction();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1Impl <em>Loss functions 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getLoss_functions_1()
+ * @generated
+ */
+ EClass LOSS_FUNCTIONS_1 = eINSTANCE.getLoss_functions_1();
+
+ /**
+ * The meta object literal for the '<em><b>Size average</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOSS_FUNCTIONS_1__SIZE_AVERAGE = eINSTANCE.getLoss_functions_1_Size_average();
+
+ /**
+ * The meta object literal for the '<em><b>Reduce</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOSS_FUNCTIONS_1__REDUCE = eINSTANCE.getLoss_functions_1_Reduce();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.L1LossImpl <em>L1 Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.L1LossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getL1Loss()
+ * @generated
+ */
+ EClass L1_LOSS = eINSTANCE.getL1Loss();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MSELossImpl <em>MSE Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MSELossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getMSELoss()
+ * @generated
+ */
+ EClass MSE_LOSS = eINSTANCE.getMSELoss();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.CTCLossImpl <em>CTC Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.CTCLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getCTCLoss()
+ * @generated
+ */
+ EClass CTC_LOSS = eINSTANCE.getCTCLoss();
+
+ /**
+ * The meta object literal for the '<em><b>Blank</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CTC_LOSS__BLANK = eINSTANCE.getCTCLoss_Blank();
+
+ /**
+ * The meta object literal for the '<em><b>Zero infinity</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CTC_LOSS__ZERO_INFINITY = eINSTANCE.getCTCLoss_Zero_infinity();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.KLDivLossImpl <em>KL Div Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.KLDivLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getKLDivLoss()
+ * @generated
+ */
+ EClass KL_DIV_LOSS = eINSTANCE.getKLDivLoss();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MultiLabelMarginLossImpl <em>Multi Label Margin Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MultiLabelMarginLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getMultiLabelMarginLoss()
+ * @generated
+ */
+ EClass MULTI_LABEL_MARGIN_LOSS = eINSTANCE.getMultiLabelMarginLoss();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_1Impl <em>Loss functions 11</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getLoss_functions_1_1()
+ * @generated
+ */
+ EClass LOSS_FUNCTIONS_11 = eINSTANCE.getLoss_functions_1_1();
+
+ /**
+ * The meta object literal for the '<em><b>Margin</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOSS_FUNCTIONS_11__MARGIN = eINSTANCE.getLoss_functions_1_1_Margin();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_2Impl <em>Loss functions 12</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_2Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getLoss_functions_1_2()
+ * @generated
+ */
+ EClass LOSS_FUNCTIONS_12 = eINSTANCE.getLoss_functions_1_2();
+
+ /**
+ * The meta object literal for the '<em><b>Weight</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference LOSS_FUNCTIONS_12__WEIGHT = eINSTANCE.getLoss_functions_1_2_Weight();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.CosineEmbeddingLossImpl <em>Cosine Embedding Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.CosineEmbeddingLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getCosineEmbeddingLoss()
+ * @generated
+ */
+ EClass COSINE_EMBEDDING_LOSS = eINSTANCE.getCosineEmbeddingLoss();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MarginRankingLossImpl <em>Margin Ranking Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MarginRankingLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getMarginRankingLoss()
+ * @generated
+ */
+ EClass MARGIN_RANKING_LOSS = eINSTANCE.getMarginRankingLoss();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.HingeEmbeddingLossImpl <em>Hinge Embedding Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.HingeEmbeddingLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getHingeEmbeddingLoss()
+ * @generated
+ */
+ EClass HINGE_EMBEDDING_LOSS = eINSTANCE.getHingeEmbeddingLoss();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.BCELossImpl <em>BCE Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.BCELossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getBCELoss()
+ * @generated
+ */
+ EClass BCE_LOSS = eINSTANCE.getBCELoss();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_1_1Impl <em>Loss functions 111</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_1_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getLoss_functions_1_1_1()
+ * @generated
+ */
+ EClass LOSS_FUNCTIONS_111 = eINSTANCE.getLoss_functions_1_1_1();
+
+ /**
+ * The meta object literal for the '<em><b>P</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOSS_FUNCTIONS_111__P = eINSTANCE.getLoss_functions_1_1_1_P();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MultiMarginLossImpl <em>Multi Margin Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MultiMarginLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getMultiMarginLoss()
+ * @generated
+ */
+ EClass MULTI_MARGIN_LOSS = eINSTANCE.getMultiMarginLoss();
+
+ /**
+ * The meta object literal for the '<em><b>Weight</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MULTI_MARGIN_LOSS__WEIGHT = eINSTANCE.getMultiMarginLoss_Weight();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.TripletMarginLossImpl <em>Triplet Margin Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.TripletMarginLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getTripletMarginLoss()
+ * @generated
+ */
+ EClass TRIPLET_MARGIN_LOSS = eINSTANCE.getTripletMarginLoss();
+
+ /**
+ * The meta object literal for the '<em><b>Swap</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRIPLET_MARGIN_LOSS__SWAP = eINSTANCE.getTripletMarginLoss_Swap();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_2_1Impl <em>Loss functions 121</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_2_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getLoss_functions_1_2_1()
+ * @generated
+ */
+ EClass LOSS_FUNCTIONS_121 = eINSTANCE.getLoss_functions_1_2_1();
+
+ /**
+ * The meta object literal for the '<em><b>Ignore index</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOSS_FUNCTIONS_121__IGNORE_INDEX = eINSTANCE.getLoss_functions_1_2_1_Ignore_index();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.CrossEntropyLossImpl <em>Cross Entropy Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.CrossEntropyLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getCrossEntropyLoss()
+ * @generated
+ */
+ EClass CROSS_ENTROPY_LOSS = eINSTANCE.getCrossEntropyLoss();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.NLLLossImpl <em>NLL Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.NLLLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getNLLLoss()
+ * @generated
+ */
+ EClass NLL_LOSS = eINSTANCE.getNLLLoss();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.PoissonNLLLossImpl <em>Poisson NLL Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.PoissonNLLLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getPoissonNLLLoss()
+ * @generated
+ */
+ EClass POISSON_NLL_LOSS = eINSTANCE.getPoissonNLLLoss();
+
+ /**
+ * The meta object literal for the '<em><b>Log input</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POISSON_NLL_LOSS__LOG_INPUT = eINSTANCE.getPoissonNLLLoss_Log_input();
+
+ /**
+ * The meta object literal for the '<em><b>Full</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POISSON_NLL_LOSS__FULL = eINSTANCE.getPoissonNLLLoss_Full();
+
+ /**
+ * The meta object literal for the '<em><b>Eps</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POISSON_NLL_LOSS__EPS = eINSTANCE.getPoissonNLLLoss_Eps();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.BCEWithLogitsLossImpl <em>BCE With Logits Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.BCEWithLogitsLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl#getBCEWithLogitsLoss()
+ * @generated
+ */
+ EClass BCE_WITH_LOGITS_LOSS = eINSTANCE.getBCEWithLogitsLoss();
+
+ /**
+ * The meta object literal for the '<em><b>Pos weight</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference BCE_WITH_LOGITS_LOSS__POS_WEIGHT = eINSTANCE.getBCEWithLogitsLoss_Pos_weight();
+
+ }
+
+} //Loss_functionsPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1.java
new file mode 100644
index 0000000..035d5c5
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Loss functions 1</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1#isSize_average <em>Size average</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1#isReduce <em>Reduce</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getLoss_functions_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Loss_functions_1 extends Loss_functions {
+ /**
+ * Returns the value of the '<em><b>Size average</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size average</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size average</em>' attribute.
+ * @see #setSize_average(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getLoss_functions_1_Size_average()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isSize_average();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1#isSize_average <em>Size average</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size average</em>' attribute.
+ * @see #isSize_average()
+ * @generated
+ */
+ void setSize_average(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Reduce</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Reduce</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Reduce</em>' attribute.
+ * @see #setReduce(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getLoss_functions_1_Reduce()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isReduce();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1#isReduce <em>Reduce</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Reduce</em>' attribute.
+ * @see #isReduce()
+ * @generated
+ */
+ void setReduce(boolean value);
+
+} // Loss_functions_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1_1.java
new file mode 100644
index 0000000..efd8a32
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1_1.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Loss functions 11</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1#getMargin <em>Margin</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getLoss_functions_1_1()
+ * @model
+ * @generated
+ */
+public interface Loss_functions_1_1 extends Loss_functions_1 {
+ /**
+ * Returns the value of the '<em><b>Margin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Margin</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Margin</em>' attribute.
+ * @see #setMargin(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getLoss_functions_1_1_Margin()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getMargin();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1#getMargin <em>Margin</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Margin</em>' attribute.
+ * @see #getMargin()
+ * @generated
+ */
+ void setMargin(double value);
+
+} // Loss_functions_1_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1_1_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1_1_1.java
new file mode 100644
index 0000000..f3e0ba4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1_1_1.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Loss functions 111</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1_1#getP <em>P</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getLoss_functions_1_1_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Loss_functions_1_1_1 extends Loss_functions_1_1 {
+ /**
+ * Returns the value of the '<em><b>P</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>P</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>P</em>' attribute.
+ * @see #setP(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getLoss_functions_1_1_1_P()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getP();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1_1#getP <em>P</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>P</em>' attribute.
+ * @see #getP()
+ * @generated
+ */
+ void setP(int value);
+
+} // Loss_functions_1_1_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1_2.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1_2.java
new file mode 100644
index 0000000..272f2c2
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1_2.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Loss functions 12</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2#getWeight <em>Weight</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getLoss_functions_1_2()
+ * @model
+ * @generated
+ */
+public interface Loss_functions_1_2 extends Loss_functions_1 {
+ /**
+ * Returns the value of the '<em><b>Weight</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Weight</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Weight</em>' reference.
+ * @see #setWeight(Tensor)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getLoss_functions_1_2_Weight()
+ * @model ordered="false"
+ * @generated
+ */
+ Tensor getWeight();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2#getWeight <em>Weight</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Weight</em>' reference.
+ * @see #getWeight()
+ * @generated
+ */
+ void setWeight(Tensor value);
+
+} // Loss_functions_1_2
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1_2_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1_2_1.java
new file mode 100644
index 0000000..5445711
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/Loss_functions_1_2_1.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Loss functions 121</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2_1#getIgnore_index <em>Ignore index</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getLoss_functions_1_2_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Loss_functions_1_2_1 extends Loss_functions_1_2 {
+ /**
+ * Returns the value of the '<em><b>Ignore index</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ignore index</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ignore index</em>' attribute.
+ * @see #setIgnore_index(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getLoss_functions_1_2_1_Ignore_index()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getIgnore_index();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2_1#getIgnore_index <em>Ignore index</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ignore index</em>' attribute.
+ * @see #getIgnore_index()
+ * @generated
+ */
+ void setIgnore_index(int value);
+
+} // Loss_functions_1_2_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/MSELoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/MSELoss.java
new file mode 100644
index 0000000..ee5a05c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/MSELoss.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>MSE Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getMSELoss()
+ * @model
+ * @generated
+ */
+public interface MSELoss extends Loss_functions_1 {
+} // MSELoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/MarginRankingLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/MarginRankingLoss.java
new file mode 100644
index 0000000..c08eab1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/MarginRankingLoss.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Margin Ranking Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getMarginRankingLoss()
+ * @model
+ * @generated
+ */
+public interface MarginRankingLoss extends Loss_functions_1_1 {
+} // MarginRankingLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/MultiLabelMarginLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/MultiLabelMarginLoss.java
new file mode 100644
index 0000000..4623a25
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/MultiLabelMarginLoss.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multi Label Margin Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getMultiLabelMarginLoss()
+ * @model
+ * @generated
+ */
+public interface MultiLabelMarginLoss extends Loss_functions_1 {
+} // MultiLabelMarginLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/MultiMarginLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/MultiMarginLoss.java
new file mode 100644
index 0000000..4ce6a9a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/MultiMarginLoss.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multi Margin Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiMarginLoss#getWeight <em>Weight</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getMultiMarginLoss()
+ * @model
+ * @generated
+ */
+public interface MultiMarginLoss extends Loss_functions_1_1_1 {
+ /**
+ * Returns the value of the '<em><b>Weight</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Weight</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Weight</em>' reference.
+ * @see #setWeight(Tensor)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getMultiMarginLoss_Weight()
+ * @model ordered="false"
+ * @generated
+ */
+ Tensor getWeight();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiMarginLoss#getWeight <em>Weight</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Weight</em>' reference.
+ * @see #getWeight()
+ * @generated
+ */
+ void setWeight(Tensor value);
+
+} // MultiMarginLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/NLLLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/NLLLoss.java
new file mode 100644
index 0000000..e6acaf4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/NLLLoss.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>NLL Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getNLLLoss()
+ * @model
+ * @generated
+ */
+public interface NLLLoss extends Loss_functions_1_2_1 {
+} // NLLLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/PoissonNLLLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/PoissonNLLLoss.java
new file mode 100644
index 0000000..290355a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/PoissonNLLLoss.java
@@ -0,0 +1,112 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Poisson NLL Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss#isLog_input <em>Log input</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss#isFull <em>Full</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss#getEps <em>Eps</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getPoissonNLLLoss()
+ * @model
+ * @generated
+ */
+public interface PoissonNLLLoss extends Loss_functions_1_2 {
+ /**
+ * Returns the value of the '<em><b>Log input</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Log input</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Log input</em>' attribute.
+ * @see #setLog_input(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getPoissonNLLLoss_Log_input()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isLog_input();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss#isLog_input <em>Log input</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Log input</em>' attribute.
+ * @see #isLog_input()
+ * @generated
+ */
+ void setLog_input(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Full</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Full</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Full</em>' attribute.
+ * @see #setFull(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getPoissonNLLLoss_Full()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isFull();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss#isFull <em>Full</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Full</em>' attribute.
+ * @see #isFull()
+ * @generated
+ */
+ void setFull(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Eps</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Eps</em>' attribute.
+ * @see #setEps(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getPoissonNLLLoss_Eps()
+ * @model dataType="org.eclipse.uml2.types.Real" required="true" ordered="false"
+ * @generated
+ */
+ double getEps();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss#getEps <em>Eps</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Eps</em>' attribute.
+ * @see #getEps()
+ * @generated
+ */
+ void setEps(double value);
+
+} // PoissonNLLLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/TripletMarginLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/TripletMarginLoss.java
new file mode 100644
index 0000000..f5ad9eb
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/TripletMarginLoss.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Triplet Margin Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.TripletMarginLoss#isSwap <em>Swap</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getTripletMarginLoss()
+ * @model
+ * @generated
+ */
+public interface TripletMarginLoss extends Loss_functions_1_1_1 {
+ /**
+ * Returns the value of the '<em><b>Swap</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Swap</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Swap</em>' attribute.
+ * @see #setSwap(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#getTripletMarginLoss_Swap()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isSwap();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.TripletMarginLoss#isSwap <em>Swap</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Swap</em>' attribute.
+ * @see #isSwap()
+ * @generated
+ */
+ void setSwap(boolean value);
+
+} // TripletMarginLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/BCELossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/BCELossImpl.java
new file mode 100644
index 0000000..61278db
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/BCELossImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCELoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>BCE Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class BCELossImpl extends Loss_functions_1_2Impl implements BCELoss {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BCELossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.BCE_LOSS;
+ }
+
+} //BCELossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/BCEWithLogitsLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/BCEWithLogitsLossImpl.java
new file mode 100644
index 0000000..f1ee3db
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/BCEWithLogitsLossImpl.java
@@ -0,0 +1,168 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCEWithLogitsLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>BCE With Logits Loss</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.BCEWithLogitsLossImpl#getPos_weight <em>Pos weight</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BCEWithLogitsLossImpl extends Loss_functions_1_2Impl implements BCEWithLogitsLoss {
+ /**
+ * The cached value of the '{@link #getPos_weight() <em>Pos weight</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPos_weight()
+ * @generated
+ * @ordered
+ */
+ protected Tensor pos_weight;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BCEWithLogitsLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.BCE_WITH_LOGITS_LOSS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Tensor getPos_weight() {
+ if (pos_weight != null && pos_weight.eIsProxy()) {
+ InternalEObject oldPos_weight = (InternalEObject)pos_weight;
+ pos_weight = (Tensor)eResolveProxy(oldPos_weight);
+ if (pos_weight != oldPos_weight) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Loss_functionsPackage.BCE_WITH_LOGITS_LOSS__POS_WEIGHT, oldPos_weight, pos_weight));
+ }
+ }
+ return pos_weight;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tensor basicGetPos_weight() {
+ return pos_weight;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setPos_weight(Tensor newPos_weight) {
+ Tensor oldPos_weight = pos_weight;
+ pos_weight = newPos_weight;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.BCE_WITH_LOGITS_LOSS__POS_WEIGHT, oldPos_weight, pos_weight));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Loss_functionsPackage.BCE_WITH_LOGITS_LOSS__POS_WEIGHT:
+ if (resolve) return getPos_weight();
+ return basicGetPos_weight();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Loss_functionsPackage.BCE_WITH_LOGITS_LOSS__POS_WEIGHT:
+ setPos_weight((Tensor)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.BCE_WITH_LOGITS_LOSS__POS_WEIGHT:
+ setPos_weight((Tensor)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.BCE_WITH_LOGITS_LOSS__POS_WEIGHT:
+ return pos_weight != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //BCEWithLogitsLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/CTCLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/CTCLossImpl.java
new file mode 100644
index 0000000..dea3d5e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/CTCLossImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CTCLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CTC Loss</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.CTCLossImpl#getBlank <em>Blank</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.CTCLossImpl#isZero_infinity <em>Zero infinity</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CTCLossImpl extends Loss_functionsImpl implements CTCLoss {
+ /**
+ * The default value of the '{@link #getBlank() <em>Blank</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBlank()
+ * @generated
+ * @ordered
+ */
+ protected static final int BLANK_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getBlank() <em>Blank</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBlank()
+ * @generated
+ * @ordered
+ */
+ protected int blank = BLANK_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isZero_infinity() <em>Zero infinity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isZero_infinity()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ZERO_INFINITY_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isZero_infinity() <em>Zero infinity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isZero_infinity()
+ * @generated
+ * @ordered
+ */
+ protected boolean zero_infinity = ZERO_INFINITY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CTCLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.CTC_LOSS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getBlank() {
+ return blank;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBlank(int newBlank) {
+ int oldBlank = blank;
+ blank = newBlank;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.CTC_LOSS__BLANK, oldBlank, blank));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isZero_infinity() {
+ return zero_infinity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setZero_infinity(boolean newZero_infinity) {
+ boolean oldZero_infinity = zero_infinity;
+ zero_infinity = newZero_infinity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.CTC_LOSS__ZERO_INFINITY, oldZero_infinity, zero_infinity));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Loss_functionsPackage.CTC_LOSS__BLANK:
+ return getBlank();
+ case Loss_functionsPackage.CTC_LOSS__ZERO_INFINITY:
+ return isZero_infinity();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Loss_functionsPackage.CTC_LOSS__BLANK:
+ setBlank((Integer)newValue);
+ return;
+ case Loss_functionsPackage.CTC_LOSS__ZERO_INFINITY:
+ setZero_infinity((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.CTC_LOSS__BLANK:
+ setBlank(BLANK_EDEFAULT);
+ return;
+ case Loss_functionsPackage.CTC_LOSS__ZERO_INFINITY:
+ setZero_infinity(ZERO_INFINITY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.CTC_LOSS__BLANK:
+ return blank != BLANK_EDEFAULT;
+ case Loss_functionsPackage.CTC_LOSS__ZERO_INFINITY:
+ return zero_infinity != ZERO_INFINITY_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (blank: "); //$NON-NLS-1$
+ result.append(blank);
+ result.append(", zero_infinity: "); //$NON-NLS-1$
+ result.append(zero_infinity);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CTCLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/CosineEmbeddingLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/CosineEmbeddingLossImpl.java
new file mode 100644
index 0000000..71bcbc5
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/CosineEmbeddingLossImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CosineEmbeddingLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cosine Embedding Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class CosineEmbeddingLossImpl extends Loss_functions_1_1Impl implements CosineEmbeddingLoss {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CosineEmbeddingLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.COSINE_EMBEDDING_LOSS;
+ }
+
+} //CosineEmbeddingLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/CrossEntropyLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/CrossEntropyLossImpl.java
new file mode 100644
index 0000000..11a1310
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/CrossEntropyLossImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CrossEntropyLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Cross Entropy Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class CrossEntropyLossImpl extends Loss_functions_1_2_1Impl implements CrossEntropyLoss {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CrossEntropyLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.CROSS_ENTROPY_LOSS;
+ }
+
+} //CrossEntropyLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/HingeEmbeddingLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/HingeEmbeddingLossImpl.java
new file mode 100644
index 0000000..c8f05e2
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/HingeEmbeddingLossImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.HingeEmbeddingLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Hinge Embedding Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class HingeEmbeddingLossImpl extends Loss_functions_1_1Impl implements HingeEmbeddingLoss {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HingeEmbeddingLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.HINGE_EMBEDDING_LOSS;
+ }
+
+} //HingeEmbeddingLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/KLDivLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/KLDivLossImpl.java
new file mode 100644
index 0000000..c47ef49
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/KLDivLossImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.KLDivLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>KL Div Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class KLDivLossImpl extends Loss_functions_1Impl implements KLDivLoss {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected KLDivLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.KL_DIV_LOSS;
+ }
+
+} //KLDivLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/L1LossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/L1LossImpl.java
new file mode 100644
index 0000000..894a7a8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/L1LossImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.L1Loss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>L1 Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class L1LossImpl extends Loss_functions_1Impl implements L1Loss {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected L1LossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.L1_LOSS;
+ }
+
+} //L1LossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functionsFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functionsFactoryImpl.java
new file mode 100644
index 0000000..3f49392
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functionsFactoryImpl.java
@@ -0,0 +1,298 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Loss_functionsFactoryImpl extends EFactoryImpl implements Loss_functionsFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Loss_functionsFactory init() {
+ try {
+ Loss_functionsFactory theLoss_functionsFactory = (Loss_functionsFactory)EPackage.Registry.INSTANCE.getEFactory(Loss_functionsPackage.eNS_URI);
+ if (theLoss_functionsFactory != null) {
+ return theLoss_functionsFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Loss_functionsFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Loss_functionsFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Loss_functionsPackage.L1_LOSS: return createL1Loss();
+ case Loss_functionsPackage.MSE_LOSS: return createMSELoss();
+ case Loss_functionsPackage.CTC_LOSS: return createCTCLoss();
+ case Loss_functionsPackage.KL_DIV_LOSS: return createKLDivLoss();
+ case Loss_functionsPackage.MULTI_LABEL_MARGIN_LOSS: return createMultiLabelMarginLoss();
+ case Loss_functionsPackage.LOSS_FUNCTIONS_11: return createLoss_functions_1_1();
+ case Loss_functionsPackage.LOSS_FUNCTIONS_12: return createLoss_functions_1_2();
+ case Loss_functionsPackage.COSINE_EMBEDDING_LOSS: return createCosineEmbeddingLoss();
+ case Loss_functionsPackage.MARGIN_RANKING_LOSS: return createMarginRankingLoss();
+ case Loss_functionsPackage.HINGE_EMBEDDING_LOSS: return createHingeEmbeddingLoss();
+ case Loss_functionsPackage.BCE_LOSS: return createBCELoss();
+ case Loss_functionsPackage.MULTI_MARGIN_LOSS: return createMultiMarginLoss();
+ case Loss_functionsPackage.TRIPLET_MARGIN_LOSS: return createTripletMarginLoss();
+ case Loss_functionsPackage.CROSS_ENTROPY_LOSS: return createCrossEntropyLoss();
+ case Loss_functionsPackage.NLL_LOSS: return createNLLLoss();
+ case Loss_functionsPackage.POISSON_NLL_LOSS: return createPoissonNLLLoss();
+ case Loss_functionsPackage.BCE_WITH_LOGITS_LOSS: return createBCEWithLogitsLoss();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public L1Loss createL1Loss() {
+ L1LossImpl l1Loss = new L1LossImpl();
+ return l1Loss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public MSELoss createMSELoss() {
+ MSELossImpl mseLoss = new MSELossImpl();
+ return mseLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CTCLoss createCTCLoss() {
+ CTCLossImpl ctcLoss = new CTCLossImpl();
+ return ctcLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public KLDivLoss createKLDivLoss() {
+ KLDivLossImpl klDivLoss = new KLDivLossImpl();
+ return klDivLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public MultiLabelMarginLoss createMultiLabelMarginLoss() {
+ MultiLabelMarginLossImpl multiLabelMarginLoss = new MultiLabelMarginLossImpl();
+ return multiLabelMarginLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Loss_functions_1_1 createLoss_functions_1_1() {
+ Loss_functions_1_1Impl loss_functions_1_1 = new Loss_functions_1_1Impl();
+ return loss_functions_1_1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Loss_functions_1_2 createLoss_functions_1_2() {
+ Loss_functions_1_2Impl loss_functions_1_2 = new Loss_functions_1_2Impl();
+ return loss_functions_1_2;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CosineEmbeddingLoss createCosineEmbeddingLoss() {
+ CosineEmbeddingLossImpl cosineEmbeddingLoss = new CosineEmbeddingLossImpl();
+ return cosineEmbeddingLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public MarginRankingLoss createMarginRankingLoss() {
+ MarginRankingLossImpl marginRankingLoss = new MarginRankingLossImpl();
+ return marginRankingLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public HingeEmbeddingLoss createHingeEmbeddingLoss() {
+ HingeEmbeddingLossImpl hingeEmbeddingLoss = new HingeEmbeddingLossImpl();
+ return hingeEmbeddingLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public BCELoss createBCELoss() {
+ BCELossImpl bceLoss = new BCELossImpl();
+ return bceLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public MultiMarginLoss createMultiMarginLoss() {
+ MultiMarginLossImpl multiMarginLoss = new MultiMarginLossImpl();
+ return multiMarginLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TripletMarginLoss createTripletMarginLoss() {
+ TripletMarginLossImpl tripletMarginLoss = new TripletMarginLossImpl();
+ return tripletMarginLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CrossEntropyLoss createCrossEntropyLoss() {
+ CrossEntropyLossImpl crossEntropyLoss = new CrossEntropyLossImpl();
+ return crossEntropyLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NLLLoss createNLLLoss() {
+ NLLLossImpl nllLoss = new NLLLossImpl();
+ return nllLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public PoissonNLLLoss createPoissonNLLLoss() {
+ PoissonNLLLossImpl poissonNLLLoss = new PoissonNLLLossImpl();
+ return poissonNLLLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public BCEWithLogitsLoss createBCEWithLogitsLoss() {
+ BCEWithLogitsLossImpl bceWithLogitsLoss = new BCEWithLogitsLossImpl();
+ return bceWithLogitsLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Loss_functionsPackage getLoss_functionsPackage() {
+ return (Loss_functionsPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Loss_functionsPackage getPackage() {
+ return Loss_functionsPackage.eINSTANCE;
+ }
+
+} //Loss_functionsFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functionsImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functionsImpl.java
new file mode 100644
index 0000000..8cbe26e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functionsImpl.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Loss functions</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsImpl#getReduction <em>Reduction</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Loss_functionsImpl extends ModelImpl implements Loss_functions {
+ /**
+ * The default value of the '{@link #getReduction() <em>Reduction</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReduction()
+ * @generated
+ * @ordered
+ */
+ protected static final String REDUCTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getReduction() <em>Reduction</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReduction()
+ * @generated
+ * @ordered
+ */
+ protected String reduction = REDUCTION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Loss_functionsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.LOSS_FUNCTIONS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getReduction() {
+ return reduction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setReduction(String newReduction) {
+ String oldReduction = reduction;
+ reduction = newReduction;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.LOSS_FUNCTIONS__REDUCTION, oldReduction, reduction));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS__REDUCTION:
+ return getReduction();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS__REDUCTION:
+ setReduction((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS__REDUCTION:
+ setReduction(REDUCTION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS__REDUCTION:
+ return REDUCTION_EDEFAULT == null ? reduction != null : !REDUCTION_EDEFAULT.equals(reduction);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (reduction: "); //$NON-NLS-1$
+ result.append(reduction);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Loss_functionsImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functionsPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functionsPackageImpl.java
new file mode 100644
index 0000000..d342179
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functionsPackageImpl.java
@@ -0,0 +1,1001 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCELoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCEWithLogitsLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CTCLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CosineEmbeddingLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CrossEntropyLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.HingeEmbeddingLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.KLDivLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.L1Loss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MSELoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MarginRankingLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiLabelMarginLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiMarginLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.NLLLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.TripletMarginLoss;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Loss_functionsPackageImpl extends EPackageImpl implements Loss_functionsPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass loss_functionsEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass loss_functions_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass l1LossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass mseLossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass ctcLossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass klDivLossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiLabelMarginLossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass loss_functions_1_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass loss_functions_1_2EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass cosineEmbeddingLossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass marginRankingLossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hingeEmbeddingLossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass bceLossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass loss_functions_1_1_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiMarginLossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass tripletMarginLossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass loss_functions_1_2_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass crossEntropyLossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass nllLossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass poissonNLLLossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass bceWithLogitsLossEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Loss_functionsPackageImpl() {
+ super(eNS_URI, Loss_functionsFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Loss_functionsPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Loss_functionsPackage init() {
+ if (isInited) return (Loss_functionsPackage)EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredLoss_functionsPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = registeredLoss_functionsPackage instanceof Loss_functionsPackageImpl ? (Loss_functionsPackageImpl)registeredLoss_functionsPackage : new Loss_functionsPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theLoss_functionsPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theLoss_functionsPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theLoss_functionsPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Loss_functionsPackage.eNS_URI, theLoss_functionsPackage);
+ return theLoss_functionsPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLoss_functions() {
+ return loss_functionsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLoss_functions_Reduction() {
+ return (EAttribute)loss_functionsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLoss_functions_1() {
+ return loss_functions_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLoss_functions_1_Size_average() {
+ return (EAttribute)loss_functions_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLoss_functions_1_Reduce() {
+ return (EAttribute)loss_functions_1EClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getL1Loss() {
+ return l1LossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getMSELoss() {
+ return mseLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCTCLoss() {
+ return ctcLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getCTCLoss_Blank() {
+ return (EAttribute)ctcLossEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getCTCLoss_Zero_infinity() {
+ return (EAttribute)ctcLossEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getKLDivLoss() {
+ return klDivLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getMultiLabelMarginLoss() {
+ return multiLabelMarginLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLoss_functions_1_1() {
+ return loss_functions_1_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLoss_functions_1_1_Margin() {
+ return (EAttribute)loss_functions_1_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLoss_functions_1_2() {
+ return loss_functions_1_2EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getLoss_functions_1_2_Weight() {
+ return (EReference)loss_functions_1_2EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCosineEmbeddingLoss() {
+ return cosineEmbeddingLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getMarginRankingLoss() {
+ return marginRankingLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getHingeEmbeddingLoss() {
+ return hingeEmbeddingLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getBCELoss() {
+ return bceLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLoss_functions_1_1_1() {
+ return loss_functions_1_1_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLoss_functions_1_1_1_P() {
+ return (EAttribute)loss_functions_1_1_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getMultiMarginLoss() {
+ return multiMarginLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getMultiMarginLoss_Weight() {
+ return (EReference)multiMarginLossEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTripletMarginLoss() {
+ return tripletMarginLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTripletMarginLoss_Swap() {
+ return (EAttribute)tripletMarginLossEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLoss_functions_1_2_1() {
+ return loss_functions_1_2_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLoss_functions_1_2_1_Ignore_index() {
+ return (EAttribute)loss_functions_1_2_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCrossEntropyLoss() {
+ return crossEntropyLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getNLLLoss() {
+ return nllLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPoissonNLLLoss() {
+ return poissonNLLLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPoissonNLLLoss_Log_input() {
+ return (EAttribute)poissonNLLLossEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPoissonNLLLoss_Full() {
+ return (EAttribute)poissonNLLLossEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPoissonNLLLoss_Eps() {
+ return (EAttribute)poissonNLLLossEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getBCEWithLogitsLoss() {
+ return bceWithLogitsLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getBCEWithLogitsLoss_Pos_weight() {
+ return (EReference)bceWithLogitsLossEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Loss_functionsFactory getLoss_functionsFactory() {
+ return (Loss_functionsFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ loss_functionsEClass = createEClass(LOSS_FUNCTIONS);
+ createEAttribute(loss_functionsEClass, LOSS_FUNCTIONS__REDUCTION);
+
+ loss_functions_1EClass = createEClass(LOSS_FUNCTIONS_1);
+ createEAttribute(loss_functions_1EClass, LOSS_FUNCTIONS_1__SIZE_AVERAGE);
+ createEAttribute(loss_functions_1EClass, LOSS_FUNCTIONS_1__REDUCE);
+
+ l1LossEClass = createEClass(L1_LOSS);
+
+ mseLossEClass = createEClass(MSE_LOSS);
+
+ ctcLossEClass = createEClass(CTC_LOSS);
+ createEAttribute(ctcLossEClass, CTC_LOSS__BLANK);
+ createEAttribute(ctcLossEClass, CTC_LOSS__ZERO_INFINITY);
+
+ klDivLossEClass = createEClass(KL_DIV_LOSS);
+
+ multiLabelMarginLossEClass = createEClass(MULTI_LABEL_MARGIN_LOSS);
+
+ loss_functions_1_1EClass = createEClass(LOSS_FUNCTIONS_11);
+ createEAttribute(loss_functions_1_1EClass, LOSS_FUNCTIONS_11__MARGIN);
+
+ loss_functions_1_2EClass = createEClass(LOSS_FUNCTIONS_12);
+ createEReference(loss_functions_1_2EClass, LOSS_FUNCTIONS_12__WEIGHT);
+
+ cosineEmbeddingLossEClass = createEClass(COSINE_EMBEDDING_LOSS);
+
+ marginRankingLossEClass = createEClass(MARGIN_RANKING_LOSS);
+
+ hingeEmbeddingLossEClass = createEClass(HINGE_EMBEDDING_LOSS);
+
+ bceLossEClass = createEClass(BCE_LOSS);
+
+ loss_functions_1_1_1EClass = createEClass(LOSS_FUNCTIONS_111);
+ createEAttribute(loss_functions_1_1_1EClass, LOSS_FUNCTIONS_111__P);
+
+ multiMarginLossEClass = createEClass(MULTI_MARGIN_LOSS);
+ createEReference(multiMarginLossEClass, MULTI_MARGIN_LOSS__WEIGHT);
+
+ tripletMarginLossEClass = createEClass(TRIPLET_MARGIN_LOSS);
+ createEAttribute(tripletMarginLossEClass, TRIPLET_MARGIN_LOSS__SWAP);
+
+ loss_functions_1_2_1EClass = createEClass(LOSS_FUNCTIONS_121);
+ createEAttribute(loss_functions_1_2_1EClass, LOSS_FUNCTIONS_121__IGNORE_INDEX);
+
+ crossEntropyLossEClass = createEClass(CROSS_ENTROPY_LOSS);
+
+ nllLossEClass = createEClass(NLL_LOSS);
+
+ poissonNLLLossEClass = createEClass(POISSON_NLL_LOSS);
+ createEAttribute(poissonNLLLossEClass, POISSON_NLL_LOSS__LOG_INPUT);
+ createEAttribute(poissonNLLLossEClass, POISSON_NLL_LOSS__FULL);
+ createEAttribute(poissonNLLLossEClass, POISSON_NLL_LOSS__EPS);
+
+ bceWithLogitsLossEClass = createEClass(BCE_WITH_LOGITS_LOSS);
+ createEReference(bceWithLogitsLossEClass, BCE_WITH_LOGITS_LOSS__POS_WEIGHT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+ TensorPackage theTensorPackage = (TensorPackage)EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ loss_functionsEClass.getESuperTypes().add(theModulePackage.getModel());
+ loss_functions_1EClass.getESuperTypes().add(this.getLoss_functions());
+ l1LossEClass.getESuperTypes().add(this.getLoss_functions_1());
+ mseLossEClass.getESuperTypes().add(this.getLoss_functions_1());
+ ctcLossEClass.getESuperTypes().add(this.getLoss_functions());
+ klDivLossEClass.getESuperTypes().add(this.getLoss_functions_1());
+ multiLabelMarginLossEClass.getESuperTypes().add(this.getLoss_functions_1());
+ loss_functions_1_1EClass.getESuperTypes().add(this.getLoss_functions_1());
+ loss_functions_1_2EClass.getESuperTypes().add(this.getLoss_functions_1());
+ cosineEmbeddingLossEClass.getESuperTypes().add(this.getLoss_functions_1_1());
+ marginRankingLossEClass.getESuperTypes().add(this.getLoss_functions_1_1());
+ hingeEmbeddingLossEClass.getESuperTypes().add(this.getLoss_functions_1_1());
+ bceLossEClass.getESuperTypes().add(this.getLoss_functions_1_2());
+ loss_functions_1_1_1EClass.getESuperTypes().add(this.getLoss_functions_1_1());
+ multiMarginLossEClass.getESuperTypes().add(this.getLoss_functions_1_1_1());
+ tripletMarginLossEClass.getESuperTypes().add(this.getLoss_functions_1_1_1());
+ loss_functions_1_2_1EClass.getESuperTypes().add(this.getLoss_functions_1_2());
+ crossEntropyLossEClass.getESuperTypes().add(this.getLoss_functions_1_2_1());
+ nllLossEClass.getESuperTypes().add(this.getLoss_functions_1_2_1());
+ poissonNLLLossEClass.getESuperTypes().add(this.getLoss_functions_1_2());
+ bceWithLogitsLossEClass.getESuperTypes().add(this.getLoss_functions_1_2());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(loss_functionsEClass, Loss_functions.class, "Loss_functions", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLoss_functions_Reduction(), theTypesPackage.getString(), "reduction", null, 0, 1, Loss_functions.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(loss_functions_1EClass, Loss_functions_1.class, "Loss_functions_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLoss_functions_1_Size_average(), theTypesPackage.getBoolean(), "size_average", null, 0, 1, Loss_functions_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLoss_functions_1_Reduce(), theTypesPackage.getBoolean(), "reduce", null, 0, 1, Loss_functions_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(l1LossEClass, L1Loss.class, "L1Loss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(mseLossEClass, MSELoss.class, "MSELoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(ctcLossEClass, CTCLoss.class, "CTCLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getCTCLoss_Blank(), theTypesPackage.getInteger(), "blank", null, 0, 1, CTCLoss.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getCTCLoss_Zero_infinity(), theTypesPackage.getBoolean(), "zero_infinity", null, 0, 1, CTCLoss.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(klDivLossEClass, KLDivLoss.class, "KLDivLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(multiLabelMarginLossEClass, MultiLabelMarginLoss.class, "MultiLabelMarginLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(loss_functions_1_1EClass, Loss_functions_1_1.class, "Loss_functions_1_1", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLoss_functions_1_1_Margin(), theTypesPackage.getReal(), "margin", null, 0, 1, Loss_functions_1_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(loss_functions_1_2EClass, Loss_functions_1_2.class, "Loss_functions_1_2", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getLoss_functions_1_2_Weight(), theTensorPackage.getTensor(), null, "weight", null, 0, 1, Loss_functions_1_2.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(cosineEmbeddingLossEClass, CosineEmbeddingLoss.class, "CosineEmbeddingLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(marginRankingLossEClass, MarginRankingLoss.class, "MarginRankingLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(hingeEmbeddingLossEClass, HingeEmbeddingLoss.class, "HingeEmbeddingLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(bceLossEClass, BCELoss.class, "BCELoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(loss_functions_1_1_1EClass, Loss_functions_1_1_1.class, "Loss_functions_1_1_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLoss_functions_1_1_1_P(), theTypesPackage.getInteger(), "p", null, 0, 1, Loss_functions_1_1_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(multiMarginLossEClass, MultiMarginLoss.class, "MultiMarginLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getMultiMarginLoss_Weight(), theTensorPackage.getTensor(), null, "weight", null, 0, 1, MultiMarginLoss.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(tripletMarginLossEClass, TripletMarginLoss.class, "TripletMarginLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getTripletMarginLoss_Swap(), theTypesPackage.getBoolean(), "swap", null, 0, 1, TripletMarginLoss.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(loss_functions_1_2_1EClass, Loss_functions_1_2_1.class, "Loss_functions_1_2_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLoss_functions_1_2_1_Ignore_index(), theTypesPackage.getInteger(), "ignore_index", null, 0, 1, Loss_functions_1_2_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(crossEntropyLossEClass, CrossEntropyLoss.class, "CrossEntropyLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(nllLossEClass, NLLLoss.class, "NLLLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(poissonNLLLossEClass, PoissonNLLLoss.class, "PoissonNLLLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPoissonNLLLoss_Log_input(), theTypesPackage.getBoolean(), "log_input", null, 0, 1, PoissonNLLLoss.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getPoissonNLLLoss_Full(), theTypesPackage.getBoolean(), "full", null, 0, 1, PoissonNLLLoss.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getPoissonNLLLoss_Eps(), theTypesPackage.getReal(), "eps", null, 1, 1, PoissonNLLLoss.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(bceWithLogitsLossEClass, BCEWithLogitsLoss.class, "BCEWithLogitsLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getBCEWithLogitsLoss_Pos_weight(), theTensorPackage.getTensor(), null, "pos_weight", null, 0, 1, BCEWithLogitsLoss.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ }
+
+} //Loss_functionsPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1Impl.java
new file mode 100644
index 0000000..c581ee3
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1Impl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Loss functions 1</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1Impl#isSize_average <em>Size average</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1Impl#isReduce <em>Reduce</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Loss_functions_1Impl extends Loss_functionsImpl implements Loss_functions_1 {
+ /**
+ * The default value of the '{@link #isSize_average() <em>Size average</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSize_average()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SIZE_AVERAGE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isSize_average() <em>Size average</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSize_average()
+ * @generated
+ * @ordered
+ */
+ protected boolean size_average = SIZE_AVERAGE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isReduce() <em>Reduce</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReduce()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean REDUCE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isReduce() <em>Reduce</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReduce()
+ * @generated
+ * @ordered
+ */
+ protected boolean reduce = REDUCE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Loss_functions_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.LOSS_FUNCTIONS_1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isSize_average() {
+ return size_average;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSize_average(boolean newSize_average) {
+ boolean oldSize_average = size_average;
+ size_average = newSize_average;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.LOSS_FUNCTIONS_1__SIZE_AVERAGE, oldSize_average, size_average));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isReduce() {
+ return reduce;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setReduce(boolean newReduce) {
+ boolean oldReduce = reduce;
+ reduce = newReduce;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.LOSS_FUNCTIONS_1__REDUCE, oldReduce, reduce));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_1__SIZE_AVERAGE:
+ return isSize_average();
+ case Loss_functionsPackage.LOSS_FUNCTIONS_1__REDUCE:
+ return isReduce();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_1__SIZE_AVERAGE:
+ setSize_average((Boolean)newValue);
+ return;
+ case Loss_functionsPackage.LOSS_FUNCTIONS_1__REDUCE:
+ setReduce((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_1__SIZE_AVERAGE:
+ setSize_average(SIZE_AVERAGE_EDEFAULT);
+ return;
+ case Loss_functionsPackage.LOSS_FUNCTIONS_1__REDUCE:
+ setReduce(REDUCE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_1__SIZE_AVERAGE:
+ return size_average != SIZE_AVERAGE_EDEFAULT;
+ case Loss_functionsPackage.LOSS_FUNCTIONS_1__REDUCE:
+ return reduce != REDUCE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (size_average: "); //$NON-NLS-1$
+ result.append(size_average);
+ result.append(", reduce: "); //$NON-NLS-1$
+ result.append(reduce);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Loss_functions_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1_1Impl.java
new file mode 100644
index 0000000..0223651
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1_1Impl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Loss functions 11</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_1Impl#getMargin <em>Margin</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class Loss_functions_1_1Impl extends Loss_functions_1Impl implements Loss_functions_1_1 {
+ /**
+ * The default value of the '{@link #getMargin() <em>Margin</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMargin()
+ * @generated
+ * @ordered
+ */
+ protected static final double MARGIN_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getMargin() <em>Margin</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMargin()
+ * @generated
+ * @ordered
+ */
+ protected double margin = MARGIN_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Loss_functions_1_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.LOSS_FUNCTIONS_11;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getMargin() {
+ return margin;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMargin(double newMargin) {
+ double oldMargin = margin;
+ margin = newMargin;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.LOSS_FUNCTIONS_11__MARGIN, oldMargin, margin));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_11__MARGIN:
+ return getMargin();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_11__MARGIN:
+ setMargin((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_11__MARGIN:
+ setMargin(MARGIN_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_11__MARGIN:
+ return margin != MARGIN_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (margin: "); //$NON-NLS-1$
+ result.append(margin);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Loss_functions_1_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1_1_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1_1_1Impl.java
new file mode 100644
index 0000000..ab6c8c0
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1_1_1Impl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Loss functions 111</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_1_1Impl#getP <em>P</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Loss_functions_1_1_1Impl extends Loss_functions_1_1Impl implements Loss_functions_1_1_1 {
+ /**
+ * The default value of the '{@link #getP() <em>P</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getP()
+ * @generated
+ * @ordered
+ */
+ protected static final int P_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getP() <em>P</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getP()
+ * @generated
+ * @ordered
+ */
+ protected int p = P_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Loss_functions_1_1_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.LOSS_FUNCTIONS_111;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getP() {
+ return p;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setP(int newP) {
+ int oldP = p;
+ p = newP;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.LOSS_FUNCTIONS_111__P, oldP, p));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_111__P:
+ return getP();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_111__P:
+ setP((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_111__P:
+ setP(P_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_111__P:
+ return p != P_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (p: "); //$NON-NLS-1$
+ result.append(p);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Loss_functions_1_1_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1_2Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1_2Impl.java
new file mode 100644
index 0000000..0d89b1c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1_2Impl.java
@@ -0,0 +1,168 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Loss functions 12</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_2Impl#getWeight <em>Weight</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class Loss_functions_1_2Impl extends Loss_functions_1Impl implements Loss_functions_1_2 {
+ /**
+ * The cached value of the '{@link #getWeight() <em>Weight</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWeight()
+ * @generated
+ * @ordered
+ */
+ protected Tensor weight;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Loss_functions_1_2Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.LOSS_FUNCTIONS_12;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Tensor getWeight() {
+ if (weight != null && weight.eIsProxy()) {
+ InternalEObject oldWeight = (InternalEObject)weight;
+ weight = (Tensor)eResolveProxy(oldWeight);
+ if (weight != oldWeight) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Loss_functionsPackage.LOSS_FUNCTIONS_12__WEIGHT, oldWeight, weight));
+ }
+ }
+ return weight;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tensor basicGetWeight() {
+ return weight;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setWeight(Tensor newWeight) {
+ Tensor oldWeight = weight;
+ weight = newWeight;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.LOSS_FUNCTIONS_12__WEIGHT, oldWeight, weight));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_12__WEIGHT:
+ if (resolve) return getWeight();
+ return basicGetWeight();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_12__WEIGHT:
+ setWeight((Tensor)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_12__WEIGHT:
+ setWeight((Tensor)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_12__WEIGHT:
+ return weight != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //Loss_functions_1_2Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1_2_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1_2_1Impl.java
new file mode 100644
index 0000000..3a560f1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/Loss_functions_1_2_1Impl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Loss functions 121</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_2_1Impl#getIgnore_index <em>Ignore index</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Loss_functions_1_2_1Impl extends Loss_functions_1_2Impl implements Loss_functions_1_2_1 {
+ /**
+ * The default value of the '{@link #getIgnore_index() <em>Ignore index</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIgnore_index()
+ * @generated
+ * @ordered
+ */
+ protected static final int IGNORE_INDEX_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIgnore_index() <em>Ignore index</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIgnore_index()
+ * @generated
+ * @ordered
+ */
+ protected int ignore_index = IGNORE_INDEX_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Loss_functions_1_2_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.LOSS_FUNCTIONS_121;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getIgnore_index() {
+ return ignore_index;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIgnore_index(int newIgnore_index) {
+ int oldIgnore_index = ignore_index;
+ ignore_index = newIgnore_index;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.LOSS_FUNCTIONS_121__IGNORE_INDEX, oldIgnore_index, ignore_index));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_121__IGNORE_INDEX:
+ return getIgnore_index();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_121__IGNORE_INDEX:
+ setIgnore_index((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_121__IGNORE_INDEX:
+ setIgnore_index(IGNORE_INDEX_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS_121__IGNORE_INDEX:
+ return ignore_index != IGNORE_INDEX_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (ignore_index: "); //$NON-NLS-1$
+ result.append(ignore_index);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Loss_functions_1_2_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/MSELossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/MSELossImpl.java
new file mode 100644
index 0000000..76645ca
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/MSELossImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MSELoss;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>MSE Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MSELossImpl extends Loss_functions_1Impl implements MSELoss {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MSELossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.MSE_LOSS;
+ }
+
+} //MSELossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/MarginRankingLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/MarginRankingLossImpl.java
new file mode 100644
index 0000000..862a1a9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/MarginRankingLossImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MarginRankingLoss;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Margin Ranking Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MarginRankingLossImpl extends Loss_functions_1_1Impl implements MarginRankingLoss {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MarginRankingLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.MARGIN_RANKING_LOSS;
+ }
+
+} //MarginRankingLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/MultiLabelMarginLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/MultiLabelMarginLossImpl.java
new file mode 100644
index 0000000..eadc61a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/MultiLabelMarginLossImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiLabelMarginLoss;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multi Label Margin Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MultiLabelMarginLossImpl extends Loss_functions_1Impl implements MultiLabelMarginLoss {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiLabelMarginLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.MULTI_LABEL_MARGIN_LOSS;
+ }
+
+} //MultiLabelMarginLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/MultiMarginLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/MultiMarginLossImpl.java
new file mode 100644
index 0000000..94a74aa
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/MultiMarginLossImpl.java
@@ -0,0 +1,168 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiMarginLoss;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multi Margin Loss</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.MultiMarginLossImpl#getWeight <em>Weight</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MultiMarginLossImpl extends Loss_functions_1_1_1Impl implements MultiMarginLoss {
+ /**
+ * The cached value of the '{@link #getWeight() <em>Weight</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWeight()
+ * @generated
+ * @ordered
+ */
+ protected Tensor weight;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiMarginLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.MULTI_MARGIN_LOSS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Tensor getWeight() {
+ if (weight != null && weight.eIsProxy()) {
+ InternalEObject oldWeight = (InternalEObject)weight;
+ weight = (Tensor)eResolveProxy(oldWeight);
+ if (weight != oldWeight) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Loss_functionsPackage.MULTI_MARGIN_LOSS__WEIGHT, oldWeight, weight));
+ }
+ }
+ return weight;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tensor basicGetWeight() {
+ return weight;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setWeight(Tensor newWeight) {
+ Tensor oldWeight = weight;
+ weight = newWeight;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.MULTI_MARGIN_LOSS__WEIGHT, oldWeight, weight));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Loss_functionsPackage.MULTI_MARGIN_LOSS__WEIGHT:
+ if (resolve) return getWeight();
+ return basicGetWeight();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Loss_functionsPackage.MULTI_MARGIN_LOSS__WEIGHT:
+ setWeight((Tensor)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.MULTI_MARGIN_LOSS__WEIGHT:
+ setWeight((Tensor)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.MULTI_MARGIN_LOSS__WEIGHT:
+ return weight != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //MultiMarginLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/NLLLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/NLLLossImpl.java
new file mode 100644
index 0000000..ad943a1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/NLLLossImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.NLLLoss;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>NLL Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class NLLLossImpl extends Loss_functions_1_2_1Impl implements NLLLoss {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NLLLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.NLL_LOSS;
+ }
+
+} //NLLLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/PoissonNLLLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/PoissonNLLLossImpl.java
new file mode 100644
index 0000000..c56a094
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/PoissonNLLLossImpl.java
@@ -0,0 +1,285 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Poisson NLL Loss</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.PoissonNLLLossImpl#isLog_input <em>Log input</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.PoissonNLLLossImpl#isFull <em>Full</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.PoissonNLLLossImpl#getEps <em>Eps</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PoissonNLLLossImpl extends Loss_functions_1_2Impl implements PoissonNLLLoss {
+ /**
+ * The default value of the '{@link #isLog_input() <em>Log input</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLog_input()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean LOG_INPUT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isLog_input() <em>Log input</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLog_input()
+ * @generated
+ * @ordered
+ */
+ protected boolean log_input = LOG_INPUT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isFull() <em>Full</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFull()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FULL_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isFull() <em>Full</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFull()
+ * @generated
+ * @ordered
+ */
+ protected boolean full = FULL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getEps() <em>Eps</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEps()
+ * @generated
+ * @ordered
+ */
+ protected static final double EPS_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getEps() <em>Eps</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEps()
+ * @generated
+ * @ordered
+ */
+ protected double eps = EPS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PoissonNLLLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.POISSON_NLL_LOSS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isLog_input() {
+ return log_input;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setLog_input(boolean newLog_input) {
+ boolean oldLog_input = log_input;
+ log_input = newLog_input;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.POISSON_NLL_LOSS__LOG_INPUT, oldLog_input, log_input));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFull() {
+ return full;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setFull(boolean newFull) {
+ boolean oldFull = full;
+ full = newFull;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.POISSON_NLL_LOSS__FULL, oldFull, full));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getEps() {
+ return eps;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setEps(double newEps) {
+ double oldEps = eps;
+ eps = newEps;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.POISSON_NLL_LOSS__EPS, oldEps, eps));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Loss_functionsPackage.POISSON_NLL_LOSS__LOG_INPUT:
+ return isLog_input();
+ case Loss_functionsPackage.POISSON_NLL_LOSS__FULL:
+ return isFull();
+ case Loss_functionsPackage.POISSON_NLL_LOSS__EPS:
+ return getEps();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Loss_functionsPackage.POISSON_NLL_LOSS__LOG_INPUT:
+ setLog_input((Boolean)newValue);
+ return;
+ case Loss_functionsPackage.POISSON_NLL_LOSS__FULL:
+ setFull((Boolean)newValue);
+ return;
+ case Loss_functionsPackage.POISSON_NLL_LOSS__EPS:
+ setEps((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.POISSON_NLL_LOSS__LOG_INPUT:
+ setLog_input(LOG_INPUT_EDEFAULT);
+ return;
+ case Loss_functionsPackage.POISSON_NLL_LOSS__FULL:
+ setFull(FULL_EDEFAULT);
+ return;
+ case Loss_functionsPackage.POISSON_NLL_LOSS__EPS:
+ setEps(EPS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.POISSON_NLL_LOSS__LOG_INPUT:
+ return log_input != LOG_INPUT_EDEFAULT;
+ case Loss_functionsPackage.POISSON_NLL_LOSS__FULL:
+ return full != FULL_EDEFAULT;
+ case Loss_functionsPackage.POISSON_NLL_LOSS__EPS:
+ return eps != EPS_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (log_input: "); //$NON-NLS-1$
+ result.append(log_input);
+ result.append(", full: "); //$NON-NLS-1$
+ result.append(full);
+ result.append(", eps: "); //$NON-NLS-1$
+ result.append(eps);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PoissonNLLLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/TripletMarginLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/TripletMarginLossImpl.java
new file mode 100644
index 0000000..c7c2cf5
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/impl/TripletMarginLossImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.TripletMarginLoss;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Triplet Margin Loss</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.TripletMarginLossImpl#isSwap <em>Swap</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TripletMarginLossImpl extends Loss_functions_1_1_1Impl implements TripletMarginLoss {
+ /**
+ * The default value of the '{@link #isSwap() <em>Swap</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSwap()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SWAP_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isSwap() <em>Swap</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSwap()
+ * @generated
+ * @ordered
+ */
+ protected boolean swap = SWAP_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TripletMarginLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Loss_functionsPackage.Literals.TRIPLET_MARGIN_LOSS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isSwap() {
+ return swap;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSwap(boolean newSwap) {
+ boolean oldSwap = swap;
+ swap = newSwap;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Loss_functionsPackage.TRIPLET_MARGIN_LOSS__SWAP, oldSwap, swap));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Loss_functionsPackage.TRIPLET_MARGIN_LOSS__SWAP:
+ return isSwap();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Loss_functionsPackage.TRIPLET_MARGIN_LOSS__SWAP:
+ setSwap((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.TRIPLET_MARGIN_LOSS__SWAP:
+ setSwap(SWAP_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Loss_functionsPackage.TRIPLET_MARGIN_LOSS__SWAP:
+ return swap != SWAP_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (swap: "); //$NON-NLS-1$
+ result.append(swap);
+ result.append(')');
+ return result.toString();
+ }
+
+} //TripletMarginLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/util/Loss_functionsAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/util/Loss_functionsAdapterFactory.java
new file mode 100644
index 0000000..14867e7
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/util/Loss_functionsAdapterFactory.java
@@ -0,0 +1,508 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.*;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage
+ * @generated
+ */
+public class Loss_functionsAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Loss_functionsPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Loss_functionsAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Loss_functionsPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Loss_functionsSwitch<Adapter> modelSwitch =
+ new Loss_functionsSwitch<Adapter>() {
+ @Override
+ public Adapter caseLoss_functions(Loss_functions object) {
+ return createLoss_functionsAdapter();
+ }
+ @Override
+ public Adapter caseLoss_functions_1(Loss_functions_1 object) {
+ return createLoss_functions_1Adapter();
+ }
+ @Override
+ public Adapter caseL1Loss(L1Loss object) {
+ return createL1LossAdapter();
+ }
+ @Override
+ public Adapter caseMSELoss(MSELoss object) {
+ return createMSELossAdapter();
+ }
+ @Override
+ public Adapter caseCTCLoss(CTCLoss object) {
+ return createCTCLossAdapter();
+ }
+ @Override
+ public Adapter caseKLDivLoss(KLDivLoss object) {
+ return createKLDivLossAdapter();
+ }
+ @Override
+ public Adapter caseMultiLabelMarginLoss(MultiLabelMarginLoss object) {
+ return createMultiLabelMarginLossAdapter();
+ }
+ @Override
+ public Adapter caseLoss_functions_1_1(Loss_functions_1_1 object) {
+ return createLoss_functions_1_1Adapter();
+ }
+ @Override
+ public Adapter caseLoss_functions_1_2(Loss_functions_1_2 object) {
+ return createLoss_functions_1_2Adapter();
+ }
+ @Override
+ public Adapter caseCosineEmbeddingLoss(CosineEmbeddingLoss object) {
+ return createCosineEmbeddingLossAdapter();
+ }
+ @Override
+ public Adapter caseMarginRankingLoss(MarginRankingLoss object) {
+ return createMarginRankingLossAdapter();
+ }
+ @Override
+ public Adapter caseHingeEmbeddingLoss(HingeEmbeddingLoss object) {
+ return createHingeEmbeddingLossAdapter();
+ }
+ @Override
+ public Adapter caseBCELoss(BCELoss object) {
+ return createBCELossAdapter();
+ }
+ @Override
+ public Adapter caseLoss_functions_1_1_1(Loss_functions_1_1_1 object) {
+ return createLoss_functions_1_1_1Adapter();
+ }
+ @Override
+ public Adapter caseMultiMarginLoss(MultiMarginLoss object) {
+ return createMultiMarginLossAdapter();
+ }
+ @Override
+ public Adapter caseTripletMarginLoss(TripletMarginLoss object) {
+ return createTripletMarginLossAdapter();
+ }
+ @Override
+ public Adapter caseLoss_functions_1_2_1(Loss_functions_1_2_1 object) {
+ return createLoss_functions_1_2_1Adapter();
+ }
+ @Override
+ public Adapter caseCrossEntropyLoss(CrossEntropyLoss object) {
+ return createCrossEntropyLossAdapter();
+ }
+ @Override
+ public Adapter caseNLLLoss(NLLLoss object) {
+ return createNLLLossAdapter();
+ }
+ @Override
+ public Adapter casePoissonNLLLoss(PoissonNLLLoss object) {
+ return createPoissonNLLLossAdapter();
+ }
+ @Override
+ public Adapter caseBCEWithLogitsLoss(BCEWithLogitsLoss object) {
+ return createBCEWithLogitsLossAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions <em>Loss functions</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions
+ * @generated
+ */
+ public Adapter createLoss_functionsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1 <em>Loss functions 1</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1
+ * @generated
+ */
+ public Adapter createLoss_functions_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.L1Loss <em>L1 Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.L1Loss
+ * @generated
+ */
+ public Adapter createL1LossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MSELoss <em>MSE Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MSELoss
+ * @generated
+ */
+ public Adapter createMSELossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CTCLoss <em>CTC Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CTCLoss
+ * @generated
+ */
+ public Adapter createCTCLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.KLDivLoss <em>KL Div Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.KLDivLoss
+ * @generated
+ */
+ public Adapter createKLDivLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiLabelMarginLoss <em>Multi Label Margin Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiLabelMarginLoss
+ * @generated
+ */
+ public Adapter createMultiLabelMarginLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1 <em>Loss functions 11</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1
+ * @generated
+ */
+ public Adapter createLoss_functions_1_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2 <em>Loss functions 12</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2
+ * @generated
+ */
+ public Adapter createLoss_functions_1_2Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CosineEmbeddingLoss <em>Cosine Embedding Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CosineEmbeddingLoss
+ * @generated
+ */
+ public Adapter createCosineEmbeddingLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MarginRankingLoss <em>Margin Ranking Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MarginRankingLoss
+ * @generated
+ */
+ public Adapter createMarginRankingLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.HingeEmbeddingLoss <em>Hinge Embedding Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.HingeEmbeddingLoss
+ * @generated
+ */
+ public Adapter createHingeEmbeddingLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCELoss <em>BCE Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCELoss
+ * @generated
+ */
+ public Adapter createBCELossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1_1 <em>Loss functions 111</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_1_1
+ * @generated
+ */
+ public Adapter createLoss_functions_1_1_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiMarginLoss <em>Multi Margin Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.MultiMarginLoss
+ * @generated
+ */
+ public Adapter createMultiMarginLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.TripletMarginLoss <em>Triplet Margin Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.TripletMarginLoss
+ * @generated
+ */
+ public Adapter createTripletMarginLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2_1 <em>Loss functions 121</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2_1
+ * @generated
+ */
+ public Adapter createLoss_functions_1_2_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CrossEntropyLoss <em>Cross Entropy Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.CrossEntropyLoss
+ * @generated
+ */
+ public Adapter createCrossEntropyLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.NLLLoss <em>NLL Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.NLLLoss
+ * @generated
+ */
+ public Adapter createNLLLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss <em>Poisson NLL Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.PoissonNLLLoss
+ * @generated
+ */
+ public Adapter createPoissonNLLLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCEWithLogitsLoss <em>BCE With Logits Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.BCEWithLogitsLoss
+ * @generated
+ */
+ public Adapter createBCEWithLogitsLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Loss_functionsAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/util/Loss_functionsSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/util/Loss_functionsSwitch.java
new file mode 100644
index 0000000..db4ef95
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Loss_functions/util/Loss_functionsSwitch.java
@@ -0,0 +1,630 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.*;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage
+ * @generated
+ */
+public class Loss_functionsSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Loss_functionsPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Loss_functionsSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Loss_functionsPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Loss_functionsPackage.LOSS_FUNCTIONS: {
+ Loss_functions loss_functions = (Loss_functions)theEObject;
+ T result = caseLoss_functions(loss_functions);
+ if (result == null) result = caseModel(loss_functions);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.LOSS_FUNCTIONS_1: {
+ Loss_functions_1 loss_functions_1 = (Loss_functions_1)theEObject;
+ T result = caseLoss_functions_1(loss_functions_1);
+ if (result == null) result = caseLoss_functions(loss_functions_1);
+ if (result == null) result = caseModel(loss_functions_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.L1_LOSS: {
+ L1Loss l1Loss = (L1Loss)theEObject;
+ T result = caseL1Loss(l1Loss);
+ if (result == null) result = caseLoss_functions_1(l1Loss);
+ if (result == null) result = caseLoss_functions(l1Loss);
+ if (result == null) result = caseModel(l1Loss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.MSE_LOSS: {
+ MSELoss mseLoss = (MSELoss)theEObject;
+ T result = caseMSELoss(mseLoss);
+ if (result == null) result = caseLoss_functions_1(mseLoss);
+ if (result == null) result = caseLoss_functions(mseLoss);
+ if (result == null) result = caseModel(mseLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.CTC_LOSS: {
+ CTCLoss ctcLoss = (CTCLoss)theEObject;
+ T result = caseCTCLoss(ctcLoss);
+ if (result == null) result = caseLoss_functions(ctcLoss);
+ if (result == null) result = caseModel(ctcLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.KL_DIV_LOSS: {
+ KLDivLoss klDivLoss = (KLDivLoss)theEObject;
+ T result = caseKLDivLoss(klDivLoss);
+ if (result == null) result = caseLoss_functions_1(klDivLoss);
+ if (result == null) result = caseLoss_functions(klDivLoss);
+ if (result == null) result = caseModel(klDivLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.MULTI_LABEL_MARGIN_LOSS: {
+ MultiLabelMarginLoss multiLabelMarginLoss = (MultiLabelMarginLoss)theEObject;
+ T result = caseMultiLabelMarginLoss(multiLabelMarginLoss);
+ if (result == null) result = caseLoss_functions_1(multiLabelMarginLoss);
+ if (result == null) result = caseLoss_functions(multiLabelMarginLoss);
+ if (result == null) result = caseModel(multiLabelMarginLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.LOSS_FUNCTIONS_11: {
+ Loss_functions_1_1 loss_functions_1_1 = (Loss_functions_1_1)theEObject;
+ T result = caseLoss_functions_1_1(loss_functions_1_1);
+ if (result == null) result = caseLoss_functions_1(loss_functions_1_1);
+ if (result == null) result = caseLoss_functions(loss_functions_1_1);
+ if (result == null) result = caseModel(loss_functions_1_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.LOSS_FUNCTIONS_12: {
+ Loss_functions_1_2 loss_functions_1_2 = (Loss_functions_1_2)theEObject;
+ T result = caseLoss_functions_1_2(loss_functions_1_2);
+ if (result == null) result = caseLoss_functions_1(loss_functions_1_2);
+ if (result == null) result = caseLoss_functions(loss_functions_1_2);
+ if (result == null) result = caseModel(loss_functions_1_2);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.COSINE_EMBEDDING_LOSS: {
+ CosineEmbeddingLoss cosineEmbeddingLoss = (CosineEmbeddingLoss)theEObject;
+ T result = caseCosineEmbeddingLoss(cosineEmbeddingLoss);
+ if (result == null) result = caseLoss_functions_1_1(cosineEmbeddingLoss);
+ if (result == null) result = caseLoss_functions_1(cosineEmbeddingLoss);
+ if (result == null) result = caseLoss_functions(cosineEmbeddingLoss);
+ if (result == null) result = caseModel(cosineEmbeddingLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.MARGIN_RANKING_LOSS: {
+ MarginRankingLoss marginRankingLoss = (MarginRankingLoss)theEObject;
+ T result = caseMarginRankingLoss(marginRankingLoss);
+ if (result == null) result = caseLoss_functions_1_1(marginRankingLoss);
+ if (result == null) result = caseLoss_functions_1(marginRankingLoss);
+ if (result == null) result = caseLoss_functions(marginRankingLoss);
+ if (result == null) result = caseModel(marginRankingLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.HINGE_EMBEDDING_LOSS: {
+ HingeEmbeddingLoss hingeEmbeddingLoss = (HingeEmbeddingLoss)theEObject;
+ T result = caseHingeEmbeddingLoss(hingeEmbeddingLoss);
+ if (result == null) result = caseLoss_functions_1_1(hingeEmbeddingLoss);
+ if (result == null) result = caseLoss_functions_1(hingeEmbeddingLoss);
+ if (result == null) result = caseLoss_functions(hingeEmbeddingLoss);
+ if (result == null) result = caseModel(hingeEmbeddingLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.BCE_LOSS: {
+ BCELoss bceLoss = (BCELoss)theEObject;
+ T result = caseBCELoss(bceLoss);
+ if (result == null) result = caseLoss_functions_1_2(bceLoss);
+ if (result == null) result = caseLoss_functions_1(bceLoss);
+ if (result == null) result = caseLoss_functions(bceLoss);
+ if (result == null) result = caseModel(bceLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.LOSS_FUNCTIONS_111: {
+ Loss_functions_1_1_1 loss_functions_1_1_1 = (Loss_functions_1_1_1)theEObject;
+ T result = caseLoss_functions_1_1_1(loss_functions_1_1_1);
+ if (result == null) result = caseLoss_functions_1_1(loss_functions_1_1_1);
+ if (result == null) result = caseLoss_functions_1(loss_functions_1_1_1);
+ if (result == null) result = caseLoss_functions(loss_functions_1_1_1);
+ if (result == null) result = caseModel(loss_functions_1_1_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.MULTI_MARGIN_LOSS: {
+ MultiMarginLoss multiMarginLoss = (MultiMarginLoss)theEObject;
+ T result = caseMultiMarginLoss(multiMarginLoss);
+ if (result == null) result = caseLoss_functions_1_1_1(multiMarginLoss);
+ if (result == null) result = caseLoss_functions_1_1(multiMarginLoss);
+ if (result == null) result = caseLoss_functions_1(multiMarginLoss);
+ if (result == null) result = caseLoss_functions(multiMarginLoss);
+ if (result == null) result = caseModel(multiMarginLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.TRIPLET_MARGIN_LOSS: {
+ TripletMarginLoss tripletMarginLoss = (TripletMarginLoss)theEObject;
+ T result = caseTripletMarginLoss(tripletMarginLoss);
+ if (result == null) result = caseLoss_functions_1_1_1(tripletMarginLoss);
+ if (result == null) result = caseLoss_functions_1_1(tripletMarginLoss);
+ if (result == null) result = caseLoss_functions_1(tripletMarginLoss);
+ if (result == null) result = caseLoss_functions(tripletMarginLoss);
+ if (result == null) result = caseModel(tripletMarginLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.LOSS_FUNCTIONS_121: {
+ Loss_functions_1_2_1 loss_functions_1_2_1 = (Loss_functions_1_2_1)theEObject;
+ T result = caseLoss_functions_1_2_1(loss_functions_1_2_1);
+ if (result == null) result = caseLoss_functions_1_2(loss_functions_1_2_1);
+ if (result == null) result = caseLoss_functions_1(loss_functions_1_2_1);
+ if (result == null) result = caseLoss_functions(loss_functions_1_2_1);
+ if (result == null) result = caseModel(loss_functions_1_2_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.CROSS_ENTROPY_LOSS: {
+ CrossEntropyLoss crossEntropyLoss = (CrossEntropyLoss)theEObject;
+ T result = caseCrossEntropyLoss(crossEntropyLoss);
+ if (result == null) result = caseLoss_functions_1_2_1(crossEntropyLoss);
+ if (result == null) result = caseLoss_functions_1_2(crossEntropyLoss);
+ if (result == null) result = caseLoss_functions_1(crossEntropyLoss);
+ if (result == null) result = caseLoss_functions(crossEntropyLoss);
+ if (result == null) result = caseModel(crossEntropyLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.NLL_LOSS: {
+ NLLLoss nllLoss = (NLLLoss)theEObject;
+ T result = caseNLLLoss(nllLoss);
+ if (result == null) result = caseLoss_functions_1_2_1(nllLoss);
+ if (result == null) result = caseLoss_functions_1_2(nllLoss);
+ if (result == null) result = caseLoss_functions_1(nllLoss);
+ if (result == null) result = caseLoss_functions(nllLoss);
+ if (result == null) result = caseModel(nllLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.POISSON_NLL_LOSS: {
+ PoissonNLLLoss poissonNLLLoss = (PoissonNLLLoss)theEObject;
+ T result = casePoissonNLLLoss(poissonNLLLoss);
+ if (result == null) result = caseLoss_functions_1_2(poissonNLLLoss);
+ if (result == null) result = caseLoss_functions_1(poissonNLLLoss);
+ if (result == null) result = caseLoss_functions(poissonNLLLoss);
+ if (result == null) result = caseModel(poissonNLLLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Loss_functionsPackage.BCE_WITH_LOGITS_LOSS: {
+ BCEWithLogitsLoss bceWithLogitsLoss = (BCEWithLogitsLoss)theEObject;
+ T result = caseBCEWithLogitsLoss(bceWithLogitsLoss);
+ if (result == null) result = caseLoss_functions_1_2(bceWithLogitsLoss);
+ if (result == null) result = caseLoss_functions_1(bceWithLogitsLoss);
+ if (result == null) result = caseLoss_functions(bceWithLogitsLoss);
+ if (result == null) result = caseModel(bceWithLogitsLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Loss functions</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Loss functions</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLoss_functions(Loss_functions object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Loss functions 1</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Loss functions 1</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLoss_functions_1(Loss_functions_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>L1 Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>L1 Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseL1Loss(L1Loss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>MSE Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>MSE Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMSELoss(MSELoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CTC Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>CTC Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCTCLoss(CTCLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>KL Div Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>KL Div Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseKLDivLoss(KLDivLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multi Label Margin Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multi Label Margin Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiLabelMarginLoss(MultiLabelMarginLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Loss functions 11</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Loss functions 11</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLoss_functions_1_1(Loss_functions_1_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Loss functions 12</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Loss functions 12</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLoss_functions_1_2(Loss_functions_1_2 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cosine Embedding Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Cosine Embedding Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCosineEmbeddingLoss(CosineEmbeddingLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Margin Ranking Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Margin Ranking Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMarginRankingLoss(MarginRankingLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hinge Embedding Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Hinge Embedding Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHingeEmbeddingLoss(HingeEmbeddingLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>BCE Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>BCE Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBCELoss(BCELoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Loss functions 111</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Loss functions 111</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLoss_functions_1_1_1(Loss_functions_1_1_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multi Margin Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multi Margin Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiMarginLoss(MultiMarginLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Triplet Margin Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Triplet Margin Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTripletMarginLoss(TripletMarginLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Loss functions 121</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Loss functions 121</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLoss_functions_1_2_1(Loss_functions_1_2_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Cross Entropy Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Cross Entropy Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCrossEntropyLoss(CrossEntropyLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>NLL Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>NLL Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNLLLoss(NLLLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Poisson NLL Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Poisson NLL Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePoissonNLLLoss(PoissonNLLLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>BCE With Logits Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>BCE With Logits Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBCEWithLogitsLoss(BCEWithLogitsLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Loss_functionsSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/Default_Container.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/Default_Container.java
new file mode 100644
index 0000000..2b5c0a8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/Default_Container.java
@@ -0,0 +1,205 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Module;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Default Container</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Default_Container#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Default_Container#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Default_Container#getData <em>Data</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Default_Container#isRequires_grad <em>Requires grad</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Default_Container#getSubModule <em>Sub Module</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Default_Container#getOptimizer <em>Optimizer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Default_Container#getLoss <em>Loss</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getDefault_Container()
+ * @model
+ * @generated
+ */
+public interface Default_Container extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getDefault_Container_Base_Class()
+ * @model ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Default_Container#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getDefault_Container_Name()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Returns the value of the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data</em>' reference.
+ * @see #setData(Tensor)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getDefault_Container_Data()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Tensor getData();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Default_Container#getData <em>Data</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data</em>' reference.
+ * @see #getData()
+ * @generated
+ */
+ void setData(Tensor value);
+
+ /**
+ * Returns the value of the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Requires grad</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Requires grad</em>' attribute.
+ * @see #setRequires_grad(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getDefault_Container_Requires_grad()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isRequires_grad();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Default_Container#isRequires_grad <em>Requires grad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Requires grad</em>' attribute.
+ * @see #isRequires_grad()
+ * @generated
+ */
+ void setRequires_grad(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Sub Module</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.aiml.profile.AIML.Module.Default_Container}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sub Module</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sub Module</em>' reference list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getDefault_Container_SubModule()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Default_Container> getSubModule();
+
+ /**
+ * Returns the value of the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Optimizer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Optimizer</em>' attribute.
+ * @see #setOptimizer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getDefault_Container_Optimizer()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getOptimizer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Default_Container#getOptimizer <em>Optimizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Optimizer</em>' attribute.
+ * @see #getOptimizer()
+ * @generated
+ */
+ void setOptimizer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Loss</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Loss</em>' attribute.
+ * @see #setLoss(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getDefault_Container_Loss()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getLoss();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Default_Container#getLoss <em>Loss</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Loss</em>' attribute.
+ * @see #getLoss()
+ * @generated
+ */
+ void setLoss(String value);
+
+
+} // Default_Container
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/Model.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/Model.java
new file mode 100644
index 0000000..4f858ea
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/Model.java
@@ -0,0 +1,204 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Module;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getData <em>Data</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#isRequires_grad <em>Requires grad</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getSubModule <em>Sub Module</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getOptimizer <em>Optimizer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getLoss <em>Loss</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getModel()
+ * @model
+ * @generated
+ */
+public interface Model extends EObject {
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getModel_Base_Class()
+ * @model ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getModel_Name()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Returns the value of the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data</em>' reference.
+ * @see #setData(Tensor)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getModel_Data()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ Tensor getData();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getData <em>Data</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Data</em>' reference.
+ * @see #getData()
+ * @generated
+ */
+ void setData(Tensor value);
+
+ /**
+ * Returns the value of the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Requires grad</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Requires grad</em>' attribute.
+ * @see #setRequires_grad(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getModel_Requires_grad()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isRequires_grad();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#isRequires_grad <em>Requires grad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Requires grad</em>' attribute.
+ * @see #isRequires_grad()
+ * @generated
+ */
+ void setRequires_grad(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Sub Module</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sub Module</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sub Module</em>' reference list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getModel_SubModule()
+ * @model ordered="false"
+ * @generated
+ */
+ EList<Model> getSubModule();
+
+ /**
+ * Returns the value of the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Optimizer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Optimizer</em>' attribute.
+ * @see #setOptimizer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getModel_Optimizer()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getOptimizer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getOptimizer <em>Optimizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Optimizer</em>' attribute.
+ * @see #getOptimizer()
+ * @generated
+ */
+ void setOptimizer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Loss</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Loss</em>' attribute.
+ * @see #setLoss(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#getModel_Loss()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getLoss();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getLoss <em>Loss</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Loss</em>' attribute.
+ * @see #getLoss()
+ * @generated
+ */
+ void setLoss(String value);
+
+} // Model
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/ModuleFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/ModuleFactory.java
new file mode 100644
index 0000000..029cef7
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/ModuleFactory.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Module;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage
+ * @generated
+ */
+public interface ModuleFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ModuleFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModuleFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Model</em>'.
+ * @generated
+ */
+ Model createModel();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ModulePackage getModulePackage();
+
+} //ModuleFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/ModulePackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/ModulePackage.java
new file mode 100644
index 0000000..5877bfe
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/ModulePackage.java
@@ -0,0 +1,338 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Module;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModuleFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ModulePackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Module"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/module/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Module"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ModulePackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl#getModel()
+ * @generated
+ */
+ int MODEL = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__BASE_CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__DATA = 2;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__REQUIRES_GRAD = 3;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__SUB_MODULE = 4;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__OPTIMIZER = 5;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL__LOSS = 6;
+
+ /**
+ * The number of structural features of the '<em>Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_FEATURE_COUNT = 7;
+
+ /**
+ * The number of operations of the '<em>Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_OPERATION_COUNT = 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ EClass getModel();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getBase_Class()
+ * @see #getModel()
+ * @generated
+ */
+ EReference getModel_Base_Class();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getName()
+ * @see #getModel()
+ * @generated
+ */
+ EAttribute getModel_Name();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getData <em>Data</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Data</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getData()
+ * @see #getModel()
+ * @generated
+ */
+ EReference getModel_Data();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#isRequires_grad <em>Requires grad</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Requires grad</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model#isRequires_grad()
+ * @see #getModel()
+ * @generated
+ */
+ EAttribute getModel_Requires_grad();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getSubModule <em>Sub Module</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Sub Module</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getSubModule()
+ * @see #getModel()
+ * @generated
+ */
+ EReference getModel_SubModule();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getOptimizer <em>Optimizer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Optimizer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getOptimizer()
+ * @see #getModel()
+ * @generated
+ */
+ EAttribute getModel_Optimizer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getLoss <em>Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model#getLoss()
+ * @see #getModel()
+ * @generated
+ */
+ EAttribute getModel_Loss();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ ModuleFactory getModuleFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl <em>Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl#getModel()
+ * @generated
+ */
+ EClass MODEL = eINSTANCE.getModel();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL__BASE_CLASS = eINSTANCE.getModel_Base_Class();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL__NAME = eINSTANCE.getModel_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Data</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL__DATA = eINSTANCE.getModel_Data();
+
+ /**
+ * The meta object literal for the '<em><b>Requires grad</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL__REQUIRES_GRAD = eINSTANCE.getModel_Requires_grad();
+
+ /**
+ * The meta object literal for the '<em><b>Sub Module</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference MODEL__SUB_MODULE = eINSTANCE.getModel_SubModule();
+
+ /**
+ * The meta object literal for the '<em><b>Optimizer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL__OPTIMIZER = eINSTANCE.getModel_Optimizer();
+
+ /**
+ * The meta object literal for the '<em><b>Loss</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL__LOSS = eINSTANCE.getModel_Loss();
+
+ }
+
+} //ModulePackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/impl/ModelImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/impl/ModelImpl.java
new file mode 100644
index 0000000..cefc6c9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/impl/ModelImpl.java
@@ -0,0 +1,481 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Module.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl#getBase_Class <em>Base Class</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl#getData <em>Data</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl#isRequires_grad <em>Requires grad</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl#getSubModule <em>Sub Module</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl#getOptimizer <em>Optimizer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl#getLoss <em>Loss</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ModelImpl extends MinimalEObjectImpl.Container implements Model {
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getData() <em>Data</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getData()
+ * @generated
+ * @ordered
+ */
+ protected Tensor data;
+
+ /**
+ * The default value of the '{@link #isRequires_grad() <em>Requires grad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRequires_grad()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean REQUIRES_GRAD_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isRequires_grad() <em>Requires grad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRequires_grad()
+ * @generated
+ * @ordered
+ */
+ protected boolean requires_grad = REQUIRES_GRAD_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSubModule() <em>Sub Module</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubModule()
+ * @generated
+ * @ordered
+ */
+ protected EList<Model> subModule;
+
+ /**
+ * The default value of the '{@link #getOptimizer() <em>Optimizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOptimizer()
+ * @generated
+ * @ordered
+ */
+ protected static final String OPTIMIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOptimizer() <em>Optimizer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOptimizer()
+ * @generated
+ * @ordered
+ */
+ protected String optimizer = OPTIMIZER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLoss() <em>Loss</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLoss()
+ * @generated
+ * @ordered
+ */
+ protected static final String LOSS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLoss() <em>Loss</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLoss()
+ * @generated
+ * @ordered
+ */
+ protected String loss = LOSS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ModulePackage.Literals.MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ModulePackage.MODEL__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModulePackage.MODEL__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getName() {
+ return getBase_Class().getName();
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Tensor getData() {
+ if (data != null && data.eIsProxy()) {
+ InternalEObject oldData = (InternalEObject)data;
+ data = (Tensor)eResolveProxy(oldData);
+ if (data != oldData) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ModulePackage.MODEL__DATA, oldData, data));
+ }
+ }
+ return data;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Tensor basicGetData() {
+ return data;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setData(Tensor newData) {
+ Tensor oldData = data;
+ data = newData;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModulePackage.MODEL__DATA, oldData, data));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isRequires_grad() {
+ return requires_grad;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setRequires_grad(boolean newRequires_grad) {
+ boolean oldRequires_grad = requires_grad;
+ requires_grad = newRequires_grad;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModulePackage.MODEL__REQUIRES_GRAD, oldRequires_grad, requires_grad));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Model> getSubModule() {
+ if (subModule == null) {
+ subModule = new EObjectResolvingEList<Model>(Model.class, this, ModulePackage.MODEL__SUB_MODULE);
+ }
+ return subModule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getOptimizer() {
+ return optimizer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setOptimizer(String newOptimizer) {
+ String oldOptimizer = optimizer;
+ optimizer = newOptimizer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModulePackage.MODEL__OPTIMIZER, oldOptimizer, optimizer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getLoss() {
+ return loss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setLoss(String newLoss) {
+ String oldLoss = loss;
+ loss = newLoss;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ModulePackage.MODEL__LOSS, oldLoss, loss));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ModulePackage.MODEL__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ case ModulePackage.MODEL__NAME:
+ return getName();
+ case ModulePackage.MODEL__DATA:
+ if (resolve) return getData();
+ return basicGetData();
+ case ModulePackage.MODEL__REQUIRES_GRAD:
+ return isRequires_grad();
+ case ModulePackage.MODEL__SUB_MODULE:
+ return getSubModule();
+ case ModulePackage.MODEL__OPTIMIZER:
+ return getOptimizer();
+ case ModulePackage.MODEL__LOSS:
+ return getLoss();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ModulePackage.MODEL__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ case ModulePackage.MODEL__DATA:
+ setData((Tensor)newValue);
+ return;
+ case ModulePackage.MODEL__REQUIRES_GRAD:
+ setRequires_grad((Boolean)newValue);
+ return;
+ case ModulePackage.MODEL__SUB_MODULE:
+ getSubModule().clear();
+ getSubModule().addAll((Collection<? extends Model>)newValue);
+ return;
+ case ModulePackage.MODEL__OPTIMIZER:
+ setOptimizer((String)newValue);
+ return;
+ case ModulePackage.MODEL__LOSS:
+ setLoss((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ModulePackage.MODEL__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ case ModulePackage.MODEL__DATA:
+ setData((Tensor)null);
+ return;
+ case ModulePackage.MODEL__REQUIRES_GRAD:
+ setRequires_grad(REQUIRES_GRAD_EDEFAULT);
+ return;
+ case ModulePackage.MODEL__SUB_MODULE:
+ getSubModule().clear();
+ return;
+ case ModulePackage.MODEL__OPTIMIZER:
+ setOptimizer(OPTIMIZER_EDEFAULT);
+ return;
+ case ModulePackage.MODEL__LOSS:
+ setLoss(LOSS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ModulePackage.MODEL__BASE_CLASS:
+ return base_Class != null;
+ case ModulePackage.MODEL__NAME:
+ return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
+ case ModulePackage.MODEL__DATA:
+ return data != null;
+ case ModulePackage.MODEL__REQUIRES_GRAD:
+ return requires_grad != REQUIRES_GRAD_EDEFAULT;
+ case ModulePackage.MODEL__SUB_MODULE:
+ return subModule != null && !subModule.isEmpty();
+ case ModulePackage.MODEL__OPTIMIZER:
+ return OPTIMIZER_EDEFAULT == null ? optimizer != null : !OPTIMIZER_EDEFAULT.equals(optimizer);
+ case ModulePackage.MODEL__LOSS:
+ return LOSS_EDEFAULT == null ? loss != null : !LOSS_EDEFAULT.equals(loss);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (requires_grad: "); //$NON-NLS-1$
+ result.append(requires_grad);
+ result.append(", optimizer: "); //$NON-NLS-1$
+ result.append(optimizer);
+ result.append(", loss: "); //$NON-NLS-1$
+ result.append(loss);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ModelImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/impl/ModuleFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/impl/ModuleFactoryImpl.java
new file mode 100644
index 0000000..a778e3d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/impl/ModuleFactoryImpl.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Module.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ModuleFactoryImpl extends EFactoryImpl implements ModuleFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ModuleFactory init() {
+ try {
+ ModuleFactory theModuleFactory = (ModuleFactory)EPackage.Registry.INSTANCE.getEFactory(ModulePackage.eNS_URI);
+ if (theModuleFactory != null) {
+ return theModuleFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ModuleFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModuleFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case ModulePackage.MODEL: return createModel();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Model createModel() {
+ ModelImpl model = new ModelImpl();
+ return model;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ModulePackage getModulePackage() {
+ return (ModulePackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static ModulePackage getPackage() {
+ return ModulePackage.eINSTANCE;
+ }
+
+} //ModuleFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/impl/ModulePackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/impl/ModulePackageImpl.java
new file mode 100644
index 0000000..4be8dc1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/impl/ModulePackageImpl.java
@@ -0,0 +1,442 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Module.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModuleFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ModulePackageImpl extends EPackageImpl implements ModulePackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelEClass = null;
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ModulePackageImpl() {
+ super(eNS_URI, ModuleFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link ModulePackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ModulePackage init() {
+ if (isInited) return (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredModulePackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ ModulePackageImpl theModulePackage = registeredModulePackage instanceof ModulePackageImpl ? (ModulePackageImpl)registeredModulePackage : new ModulePackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theModulePackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theModulePackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theModulePackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(ModulePackage.eNS_URI, theModulePackage);
+ return theModulePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getModel() {
+ return modelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getModel_Base_Class() {
+ return (EReference)modelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getModel_Name() {
+ return (EAttribute)modelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getModel_Data() {
+ return (EReference)modelEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getModel_Requires_grad() {
+ return (EAttribute)modelEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getModel_SubModule() {
+ return (EReference)modelEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getModel_Optimizer() {
+ return (EAttribute)modelEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getModel_Loss() {
+ return (EAttribute)modelEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ModuleFactory getModuleFactory() {
+ return (ModuleFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ modelEClass = createEClass(MODEL);
+ createEReference(modelEClass, MODEL__BASE_CLASS);
+ createEAttribute(modelEClass, MODEL__NAME);
+ createEReference(modelEClass, MODEL__DATA);
+ createEAttribute(modelEClass, MODEL__REQUIRES_GRAD);
+ createEReference(modelEClass, MODEL__SUB_MODULE);
+ createEAttribute(modelEClass, MODEL__OPTIMIZER);
+ createEAttribute(modelEClass, MODEL__LOSS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+ TensorPackage theTensorPackage = (TensorPackage)EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(modelEClass, Model.class, "Model", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getModel_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getModel_Name(), theTypesPackage.getString(), "name", null, 1, 1, Model.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getModel_Data(), theTensorPackage.getTensor(), null, "data", null, 1, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getModel_Requires_grad(), theTypesPackage.getBoolean(), "requires_grad", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getModel_SubModule(), this.getModel(), null, "subModule", null, 0, -1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getModel_Optimizer(), theTypesPackage.getString(), "optimizer", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getModel_Loss(), theTypesPackage.getString(), "loss", null, 0, 1, Model.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ }
+
+} //ModulePackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/util/ModuleAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/util/ModuleAdapterFactory.java
new file mode 100644
index 0000000..1f2d94f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/util/ModuleAdapterFactory.java
@@ -0,0 +1,129 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Module.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage
+ * @generated
+ */
+public class ModuleAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ModulePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModuleAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = ModulePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModuleSwitch<Adapter> modelSwitch =
+ new ModuleSwitch<Adapter>() {
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //ModuleAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/util/ModuleSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/util/ModuleSwitch.java
new file mode 100644
index 0000000..7cdbd3b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Module/util/ModuleSwitch.java
@@ -0,0 +1,119 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Module.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage
+ * @generated
+ */
+public class ModuleSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ModulePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModuleSwitch() {
+ if (modelPackage == null) {
+ modelPackage = ModulePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case ModulePackage.MODEL: {
+ Model model = (Model)theEObject;
+ T result = caseModel(model);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //ModuleSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/MultiLabelSoftMarginLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/MultiLabelSoftMarginLoss.java
new file mode 100644
index 0000000..539758b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/MultiLabelSoftMarginLoss.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multi Label Soft Margin Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage#getMultiLabelSoftMarginLoss()
+ * @model
+ * @generated
+ */
+public interface MultiLabelSoftMarginLoss extends Loss_functions_1_2 {
+} // MultiLabelSoftMarginLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/CELU.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/CELU.java
new file mode 100644
index 0000000..b6aa3a8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/CELU.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>CELU</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.CELU#getAlpha <em>Alpha</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getCELU()
+ * @model
+ * @generated
+ */
+public interface CELU extends Nonlinear_activations_weightedsumnonlinearity_1 {
+ /**
+ * Returns the value of the '<em><b>Alpha</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Alpha</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Alpha</em>' attribute.
+ * @see #setAlpha(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getCELU_Alpha()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getAlpha();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.CELU#getAlpha <em>Alpha</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Alpha</em>' attribute.
+ * @see #getAlpha()
+ * @generated
+ */
+ void setAlpha(double value);
+
+} // CELU
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/ELU.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/ELU.java
new file mode 100644
index 0000000..255c624
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/ELU.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>ELU</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ELU#getAlpha <em>Alpha</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getELU()
+ * @model
+ * @generated
+ */
+public interface ELU extends Nonlinear_activations_weightedsumnonlinearity_1 {
+ /**
+ * Returns the value of the '<em><b>Alpha</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Alpha</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Alpha</em>' attribute.
+ * @see #setAlpha(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getELU_Alpha()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getAlpha();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ELU#getAlpha <em>Alpha</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Alpha</em>' attribute.
+ * @see #getAlpha()
+ * @generated
+ */
+ void setAlpha(double value);
+
+} // ELU
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/GELU.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/GELU.java
new file mode 100644
index 0000000..aa00113
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/GELU.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>GELU</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getGELU()
+ * @model
+ * @generated
+ */
+public interface GELU extends Nonlinear_activations_weightedsumnonlinearity {
+} // GELU
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Hardshrink.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Hardshrink.java
new file mode 100644
index 0000000..c4628ee
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Hardshrink.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Hardshrink</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getHardshrink()
+ * @model
+ * @generated
+ */
+public interface Hardshrink extends shrink {
+} // Hardshrink
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Hardtanh.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Hardtanh.java
new file mode 100644
index 0000000..f6f4e4a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Hardtanh.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Hardtanh</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardtanh#getMin_val <em>Min val</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardtanh#getMax_val <em>Max val</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getHardtanh()
+ * @model
+ * @generated
+ */
+public interface Hardtanh extends Nonlinear_activations_weightedsumnonlinearity_1 {
+ /**
+ * Returns the value of the '<em><b>Min val</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Min val</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Min val</em>' attribute.
+ * @see #setMin_val(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getHardtanh_Min_val()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getMin_val();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardtanh#getMin_val <em>Min val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Min val</em>' attribute.
+ * @see #getMin_val()
+ * @generated
+ */
+ void setMin_val(double value);
+
+ /**
+ * Returns the value of the '<em><b>Max val</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Max val</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Max val</em>' attribute.
+ * @see #setMax_val(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getHardtanh_Max_val()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getMax_val();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardtanh#getMax_val <em>Max val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Max val</em>' attribute.
+ * @see #getMax_val()
+ * @generated
+ */
+ void setMax_val(double value);
+
+} // Hardtanh
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/LeakyReLU.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/LeakyReLU.java
new file mode 100644
index 0000000..76764b8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/LeakyReLU.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Leaky Re LU</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LeakyReLU#getNegative_slope <em>Negative slope</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getLeakyReLU()
+ * @model
+ * @generated
+ */
+public interface LeakyReLU extends Nonlinear_activations_weightedsumnonlinearity_1 {
+ /**
+ * Returns the value of the '<em><b>Negative slope</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Negative slope</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Negative slope</em>' attribute.
+ * @see #setNegative_slope(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getLeakyReLU_Negative_slope()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getNegative_slope();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LeakyReLU#getNegative_slope <em>Negative slope</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Negative slope</em>' attribute.
+ * @see #getNegative_slope()
+ * @generated
+ */
+ void setNegative_slope(double value);
+
+} // LeakyReLU
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/LogSigmoid.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/LogSigmoid.java
new file mode 100644
index 0000000..b4b28be
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/LogSigmoid.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Log Sigmoid</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getLogSigmoid()
+ * @model
+ * @generated
+ */
+public interface LogSigmoid extends Nonlinear_activations_weightedsumnonlinearity {
+} // LogSigmoid
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/MultiheadAttention.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/MultiheadAttention.java
new file mode 100644
index 0000000..d606c09
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/MultiheadAttention.java
@@ -0,0 +1,248 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Multihead Attention</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getEmbed_dim <em>Embed dim</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getNum_heads <em>Num heads</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getDropout <em>Dropout</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#isBias <em>Bias</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#isAdd_bias_kv <em>Add bias kv</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#isAdd_zero_attn <em>Add zero attn</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getKdim <em>Kdim</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getVdim <em>Vdim</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getMultiheadAttention()
+ * @model
+ * @generated
+ */
+public interface MultiheadAttention extends Nonlinear_activations_weightedsumnonlinearity {
+ /**
+ * Returns the value of the '<em><b>Embed dim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Embed dim</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Embed dim</em>' attribute.
+ * @see #setEmbed_dim(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getMultiheadAttention_Embed_dim()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getEmbed_dim();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getEmbed_dim <em>Embed dim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Embed dim</em>' attribute.
+ * @see #getEmbed_dim()
+ * @generated
+ */
+ void setEmbed_dim(int value);
+
+ /**
+ * Returns the value of the '<em><b>Num heads</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Num heads</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Num heads</em>' attribute.
+ * @see #setNum_heads(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getMultiheadAttention_Num_heads()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getNum_heads();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getNum_heads <em>Num heads</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Num heads</em>' attribute.
+ * @see #getNum_heads()
+ * @generated
+ */
+ void setNum_heads(int value);
+
+ /**
+ * Returns the value of the '<em><b>Dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dropout</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dropout</em>' attribute.
+ * @see #setDropout(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getMultiheadAttention_Dropout()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getDropout();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getDropout <em>Dropout</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dropout</em>' attribute.
+ * @see #getDropout()
+ * @generated
+ */
+ void setDropout(double value);
+
+ /**
+ * Returns the value of the '<em><b>Bias</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bias</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bias</em>' attribute.
+ * @see #setBias(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getMultiheadAttention_Bias()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isBias();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#isBias <em>Bias</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bias</em>' attribute.
+ * @see #isBias()
+ * @generated
+ */
+ void setBias(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Add bias kv</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Add bias kv</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Add bias kv</em>' attribute.
+ * @see #setAdd_bias_kv(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getMultiheadAttention_Add_bias_kv()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='add_bias_kv '"
+ * @generated
+ */
+ boolean isAdd_bias_kv();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#isAdd_bias_kv <em>Add bias kv</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Add bias kv</em>' attribute.
+ * @see #isAdd_bias_kv()
+ * @generated
+ */
+ void setAdd_bias_kv(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Add zero attn</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Add zero attn</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Add zero attn</em>' attribute.
+ * @see #setAdd_zero_attn(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getMultiheadAttention_Add_zero_attn()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isAdd_zero_attn();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#isAdd_zero_attn <em>Add zero attn</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Add zero attn</em>' attribute.
+ * @see #isAdd_zero_attn()
+ * @generated
+ */
+ void setAdd_zero_attn(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Kdim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kdim</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kdim</em>' attribute.
+ * @see #setKdim(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getMultiheadAttention_Kdim()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getKdim();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getKdim <em>Kdim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Kdim</em>' attribute.
+ * @see #getKdim()
+ * @generated
+ */
+ void setKdim(int value);
+
+ /**
+ * Returns the value of the '<em><b>Vdim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Vdim</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Vdim</em>' attribute.
+ * @see #setVdim(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getMultiheadAttention_Vdim()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getVdim();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getVdim <em>Vdim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Vdim</em>' attribute.
+ * @see #getVdim()
+ * @generated
+ */
+ void setVdim(int value);
+
+} // MultiheadAttention
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/NonLinearActivationsFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/NonLinearActivationsFactory.java
new file mode 100644
index 0000000..9437381
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/NonLinearActivationsFactory.java
@@ -0,0 +1,222 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage
+ * @generated
+ */
+public interface NonLinearActivationsFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ NonLinearActivationsFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>ELU</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>ELU</em>'.
+ * @generated
+ */
+ ELU createELU();
+
+ /**
+ * Returns a new object of class '<em>Leaky Re LU</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Leaky Re LU</em>'.
+ * @generated
+ */
+ LeakyReLU createLeakyReLU();
+
+ /**
+ * Returns a new object of class '<em>Log Sigmoid</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Log Sigmoid</em>'.
+ * @generated
+ */
+ LogSigmoid createLogSigmoid();
+
+ /**
+ * Returns a new object of class '<em>Multihead Attention</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Multihead Attention</em>'.
+ * @generated
+ */
+ MultiheadAttention createMultiheadAttention();
+
+ /**
+ * Returns a new object of class '<em>PRe LU</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>PRe LU</em>'.
+ * @generated
+ */
+ PReLU createPReLU();
+
+ /**
+ * Returns a new object of class '<em>Re LU</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Re LU</em>'.
+ * @generated
+ */
+ ReLU createReLU();
+
+ /**
+ * Returns a new object of class '<em>Re LU6</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Re LU6</em>'.
+ * @generated
+ */
+ ReLU6 createReLU6();
+
+ /**
+ * Returns a new object of class '<em>SELU</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>SELU</em>'.
+ * @generated
+ */
+ SELU createSELU();
+
+ /**
+ * Returns a new object of class '<em>RRe LU</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>RRe LU</em>'.
+ * @generated
+ */
+ RReLU createRReLU();
+
+ /**
+ * Returns a new object of class '<em>CELU</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>CELU</em>'.
+ * @generated
+ */
+ CELU createCELU();
+
+ /**
+ * Returns a new object of class '<em>GELU</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>GELU</em>'.
+ * @generated
+ */
+ GELU createGELU();
+
+ /**
+ * Returns a new object of class '<em>Sigmoid</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sigmoid</em>'.
+ * @generated
+ */
+ Sigmoid createSigmoid();
+
+ /**
+ * Returns a new object of class '<em>Softplus</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Softplus</em>'.
+ * @generated
+ */
+ Softplus createSoftplus();
+
+ /**
+ * Returns a new object of class '<em>Softshrink</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Softshrink</em>'.
+ * @generated
+ */
+ Softshrink createSoftshrink();
+
+ /**
+ * Returns a new object of class '<em>Hardshrink</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hardshrink</em>'.
+ * @generated
+ */
+ Hardshrink createHardshrink();
+
+ /**
+ * Returns a new object of class '<em>Softsign</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Softsign</em>'.
+ * @generated
+ */
+ Softsign createSoftsign();
+
+ /**
+ * Returns a new object of class '<em>Tanhshrink</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tanhshrink</em>'.
+ * @generated
+ */
+ Tanhshrink createTanhshrink();
+
+ /**
+ * Returns a new object of class '<em>Tanh</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tanh</em>'.
+ * @generated
+ */
+ Tanh createTanh();
+
+ /**
+ * Returns a new object of class '<em>Threshold</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Threshold</em>'.
+ * @generated
+ */
+ Threshold createThreshold();
+
+ /**
+ * Returns a new object of class '<em>Hardtanh</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Hardtanh</em>'.
+ * @generated
+ */
+ Hardtanh createHardtanh();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ NonLinearActivationsPackage getNonLinearActivationsPackage();
+
+} //NonLinearActivationsFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/NonLinearActivationsPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/NonLinearActivationsPackage.java
new file mode 100644
index 0000000..d54a7f4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/NonLinearActivationsPackage.java
@@ -0,0 +1,3391 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface NonLinearActivationsPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "NonLinearActivations"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/nonlinear/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.NonLinearActivations"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ NonLinearActivationsPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.Nonlinear_activations_weightedsumnonlinearityImpl <em>Nonlinear activations weightedsumnonlinearity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.Nonlinear_activations_weightedsumnonlinearityImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getNonlinear_activations_weightedsumnonlinearity()
+ * @generated
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The number of structural features of the '<em>Nonlinear activations weightedsumnonlinearity</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Nonlinear activations weightedsumnonlinearity</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.Nonlinear_activations_weightedsumnonlinearity_1Impl <em>Nonlinear activations weightedsumnonlinearity 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.Nonlinear_activations_weightedsumnonlinearity_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getNonlinear_activations_weightedsumnonlinearity_1()
+ * @generated
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1 = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Nonlinear activations weightedsumnonlinearity 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Nonlinear activations weightedsumnonlinearity 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ELUImpl <em>ELU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ELUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getELU()
+ * @generated
+ */
+ int ELU = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELU__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELU__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELU__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELU__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELU__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELU__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELU__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELU__INPLACE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE;
+
+ /**
+ * The feature id for the '<em><b>Alpha</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELU__ALPHA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>ELU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELU_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>ELU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ELU_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.shrinkImpl <em>shrink</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.shrinkImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getshrink()
+ * @generated
+ */
+ int SHRINK = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHRINK__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHRINK__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHRINK__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHRINK__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHRINK__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHRINK__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHRINK__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Lambd</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHRINK__LAMBD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>shrink</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHRINK_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>shrink</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SHRINK_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.LeakyReLUImpl <em>Leaky Re LU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.LeakyReLUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getLeakyReLU()
+ * @generated
+ */
+ int LEAKY_RE_LU = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LEAKY_RE_LU__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LEAKY_RE_LU__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LEAKY_RE_LU__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LEAKY_RE_LU__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LEAKY_RE_LU__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LEAKY_RE_LU__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LEAKY_RE_LU__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LEAKY_RE_LU__INPLACE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE;
+
+ /**
+ * The feature id for the '<em><b>Negative slope</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LEAKY_RE_LU__NEGATIVE_SLOPE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Leaky Re LU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LEAKY_RE_LU_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Leaky Re LU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LEAKY_RE_LU_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.LogSigmoidImpl <em>Log Sigmoid</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.LogSigmoidImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getLogSigmoid()
+ * @generated
+ */
+ int LOG_SIGMOID = 5;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SIGMOID__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SIGMOID__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SIGMOID__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SIGMOID__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SIGMOID__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SIGMOID__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SIGMOID__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__LOSS;
+
+ /**
+ * The number of structural features of the '<em>Log Sigmoid</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SIGMOID_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Log Sigmoid</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SIGMOID_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.MultiheadAttentionImpl <em>Multihead Attention</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.MultiheadAttentionImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getMultiheadAttention()
+ * @generated
+ */
+ int MULTIHEAD_ATTENTION = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Embed dim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__EMBED_DIM = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Num heads</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__NUM_HEADS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__DROPOUT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Bias</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__BIAS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Add bias kv</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__ADD_BIAS_KV = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Add zero attn</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__ADD_ZERO_ATTN = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Kdim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__KDIM = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Vdim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION__VDIM = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 7;
+
+ /**
+ * The number of structural features of the '<em>Multihead Attention</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 8;
+
+ /**
+ * The number of operations of the '<em>Multihead Attention</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MULTIHEAD_ATTENTION_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.PReLUImpl <em>PRe LU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.PReLUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getPReLU()
+ * @generated
+ */
+ int PRE_LU = 7;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PRE_LU__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PRE_LU__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PRE_LU__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PRE_LU__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PRE_LU__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PRE_LU__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PRE_LU__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Num parameters</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PRE_LU__NUM_PARAMETERS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Init</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PRE_LU__INIT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>PRe LU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PRE_LU_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>PRe LU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PRE_LU_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ReLUImpl <em>Re LU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ReLUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getReLU()
+ * @generated
+ */
+ int RE_LU = 8;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU__INPLACE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE;
+
+ /**
+ * The number of structural features of the '<em>Re LU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Re LU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ReLU6Impl <em>Re LU6</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ReLU6Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getReLU6()
+ * @generated
+ */
+ int RE_LU6 = 9;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU6__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU6__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU6__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU6__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU6__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU6__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU6__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU6__INPLACE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE;
+
+ /**
+ * The number of structural features of the '<em>Re LU6</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU6_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Re LU6</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RE_LU6_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SELUImpl <em>SELU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SELUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getSELU()
+ * @generated
+ */
+ int SELU = 10;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELU__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELU__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELU__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELU__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELU__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELU__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELU__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELU__INPLACE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE;
+
+ /**
+ * The number of structural features of the '<em>SELU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELU_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>SELU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SELU_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.RReLUImpl <em>RRe LU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.RReLUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getRReLU()
+ * @generated
+ */
+ int RRE_LU = 11;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RRE_LU__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RRE_LU__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RRE_LU__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RRE_LU__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RRE_LU__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RRE_LU__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RRE_LU__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RRE_LU__INPLACE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE;
+
+ /**
+ * The feature id for the '<em><b>Lower</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RRE_LU__LOWER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Upper</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RRE_LU__UPPER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>RRe LU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RRE_LU_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>RRe LU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RRE_LU_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.CELUImpl <em>CELU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.CELUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getCELU()
+ * @generated
+ */
+ int CELU = 12;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CELU__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CELU__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CELU__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CELU__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CELU__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CELU__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CELU__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CELU__INPLACE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE;
+
+ /**
+ * The feature id for the '<em><b>Alpha</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CELU__ALPHA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>CELU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CELU_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>CELU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CELU_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.GELUImpl <em>GELU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.GELUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getGELU()
+ * @generated
+ */
+ int GELU = 13;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GELU__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GELU__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GELU__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GELU__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GELU__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GELU__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GELU__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__LOSS;
+
+ /**
+ * The number of structural features of the '<em>GELU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GELU_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>GELU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GELU_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SigmoidImpl <em>Sigmoid</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SigmoidImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getSigmoid()
+ * @generated
+ */
+ int SIGMOID = 14;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGMOID__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGMOID__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGMOID__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGMOID__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGMOID__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGMOID__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGMOID__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__LOSS;
+
+ /**
+ * The number of structural features of the '<em>Sigmoid</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGMOID_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Sigmoid</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SIGMOID_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SoftplusImpl <em>Softplus</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SoftplusImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getSoftplus()
+ * @generated
+ */
+ int SOFTPLUS = 15;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTPLUS__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTPLUS__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTPLUS__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTPLUS__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTPLUS__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTPLUS__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTPLUS__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Beta</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTPLUS__BETA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Threshold</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTPLUS__THRESHOLD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Softplus</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTPLUS_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Softplus</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTPLUS_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SoftshrinkImpl <em>Softshrink</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SoftshrinkImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getSoftshrink()
+ * @generated
+ */
+ int SOFTSHRINK = 16;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSHRINK__BASE_CLASS = SHRINK__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSHRINK__NAME = SHRINK__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSHRINK__DATA = SHRINK__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSHRINK__REQUIRES_GRAD = SHRINK__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSHRINK__SUB_MODULE = SHRINK__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSHRINK__OPTIMIZER = SHRINK__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSHRINK__LOSS = SHRINK__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Lambd</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSHRINK__LAMBD = SHRINK__LAMBD;
+
+ /**
+ * The number of structural features of the '<em>Softshrink</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSHRINK_FEATURE_COUNT = SHRINK_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Softshrink</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSHRINK_OPERATION_COUNT = SHRINK_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.HardshrinkImpl <em>Hardshrink</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.HardshrinkImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getHardshrink()
+ * @generated
+ */
+ int HARDSHRINK = 17;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDSHRINK__BASE_CLASS = SHRINK__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDSHRINK__NAME = SHRINK__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDSHRINK__DATA = SHRINK__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDSHRINK__REQUIRES_GRAD = SHRINK__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDSHRINK__SUB_MODULE = SHRINK__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDSHRINK__OPTIMIZER = SHRINK__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDSHRINK__LOSS = SHRINK__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Lambd</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDSHRINK__LAMBD = SHRINK__LAMBD;
+
+ /**
+ * The number of structural features of the '<em>Hardshrink</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDSHRINK_FEATURE_COUNT = SHRINK_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Hardshrink</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDSHRINK_OPERATION_COUNT = SHRINK_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SoftsignImpl <em>Softsign</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SoftsignImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getSoftsign()
+ * @generated
+ */
+ int SOFTSIGN = 18;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSIGN__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSIGN__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSIGN__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSIGN__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSIGN__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSIGN__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSIGN__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__LOSS;
+
+ /**
+ * The number of structural features of the '<em>Softsign</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSIGN_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Softsign</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTSIGN_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.TanhshrinkImpl <em>Tanhshrink</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.TanhshrinkImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getTanhshrink()
+ * @generated
+ */
+ int TANHSHRINK = 19;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANHSHRINK__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANHSHRINK__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANHSHRINK__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANHSHRINK__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANHSHRINK__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANHSHRINK__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANHSHRINK__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__LOSS;
+
+ /**
+ * The number of structural features of the '<em>Tanhshrink</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANHSHRINK_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Tanhshrink</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANHSHRINK_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.TanhImpl <em>Tanh</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.TanhImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getTanh()
+ * @generated
+ */
+ int TANH = 20;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANH__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANH__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANH__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANH__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANH__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANH__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANH__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY__LOSS;
+
+ /**
+ * The number of structural features of the '<em>Tanh</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANH_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Tanh</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TANH_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ThresholdImpl <em>Threshold</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ThresholdImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getThreshold()
+ * @generated
+ */
+ int THRESHOLD = 21;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THRESHOLD__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THRESHOLD__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THRESHOLD__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THRESHOLD__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THRESHOLD__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THRESHOLD__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THRESHOLD__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THRESHOLD__INPLACE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE;
+
+ /**
+ * The feature id for the '<em><b>Threshold</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THRESHOLD__THRESHOLD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THRESHOLD__VALUE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Threshold</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THRESHOLD_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Threshold</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int THRESHOLD_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.HardtanhImpl <em>Hardtanh</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.HardtanhImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getHardtanh()
+ * @generated
+ */
+ int HARDTANH = 22;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDTANH__BASE_CLASS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDTANH__NAME = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDTANH__DATA = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDTANH__REQUIRES_GRAD = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDTANH__SUB_MODULE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDTANH__OPTIMIZER = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDTANH__LOSS = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDTANH__INPLACE = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE;
+
+ /**
+ * The feature id for the '<em><b>Min val</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDTANH__MIN_VAL = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Max val</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDTANH__MAX_VAL = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Hardtanh</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDTANH_FEATURE_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Hardtanh</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int HARDTANH_OPERATION_COUNT = NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity <em>Nonlinear activations weightedsumnonlinearity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Nonlinear activations weightedsumnonlinearity</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity
+ * @generated
+ */
+ EClass getNonlinear_activations_weightedsumnonlinearity();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ELU <em>ELU</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>ELU</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ELU
+ * @generated
+ */
+ EClass getELU();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ELU#getAlpha <em>Alpha</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Alpha</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ELU#getAlpha()
+ * @see #getELU()
+ * @generated
+ */
+ EAttribute getELU_Alpha();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity_1 <em>Nonlinear activations weightedsumnonlinearity 1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Nonlinear activations weightedsumnonlinearity 1</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity_1
+ * @generated
+ */
+ EClass getNonlinear_activations_weightedsumnonlinearity_1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity_1#isInplace <em>Inplace</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Inplace</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity_1#isInplace()
+ * @see #getNonlinear_activations_weightedsumnonlinearity_1()
+ * @generated
+ */
+ EAttribute getNonlinear_activations_weightedsumnonlinearity_1_Inplace();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.shrink <em>shrink</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>shrink</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.shrink
+ * @generated
+ */
+ EClass getshrink();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.shrink#getLambd <em>Lambd</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Lambd</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.shrink#getLambd()
+ * @see #getshrink()
+ * @generated
+ */
+ EAttribute getshrink_Lambd();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LeakyReLU <em>Leaky Re LU</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Leaky Re LU</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LeakyReLU
+ * @generated
+ */
+ EClass getLeakyReLU();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LeakyReLU#getNegative_slope <em>Negative slope</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Negative slope</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LeakyReLU#getNegative_slope()
+ * @see #getLeakyReLU()
+ * @generated
+ */
+ EAttribute getLeakyReLU_Negative_slope();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LogSigmoid <em>Log Sigmoid</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Log Sigmoid</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LogSigmoid
+ * @generated
+ */
+ EClass getLogSigmoid();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention <em>Multihead Attention</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Multihead Attention</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention
+ * @generated
+ */
+ EClass getMultiheadAttention();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getEmbed_dim <em>Embed dim</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Embed dim</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getEmbed_dim()
+ * @see #getMultiheadAttention()
+ * @generated
+ */
+ EAttribute getMultiheadAttention_Embed_dim();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getNum_heads <em>Num heads</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Num heads</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getNum_heads()
+ * @see #getMultiheadAttention()
+ * @generated
+ */
+ EAttribute getMultiheadAttention_Num_heads();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getDropout <em>Dropout</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dropout</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getDropout()
+ * @see #getMultiheadAttention()
+ * @generated
+ */
+ EAttribute getMultiheadAttention_Dropout();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#isBias <em>Bias</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bias</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#isBias()
+ * @see #getMultiheadAttention()
+ * @generated
+ */
+ EAttribute getMultiheadAttention_Bias();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#isAdd_bias_kv <em>Add bias kv</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Add bias kv</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#isAdd_bias_kv()
+ * @see #getMultiheadAttention()
+ * @generated
+ */
+ EAttribute getMultiheadAttention_Add_bias_kv();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#isAdd_zero_attn <em>Add zero attn</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Add zero attn</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#isAdd_zero_attn()
+ * @see #getMultiheadAttention()
+ * @generated
+ */
+ EAttribute getMultiheadAttention_Add_zero_attn();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getKdim <em>Kdim</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Kdim</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getKdim()
+ * @see #getMultiheadAttention()
+ * @generated
+ */
+ EAttribute getMultiheadAttention_Kdim();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getVdim <em>Vdim</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Vdim</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention#getVdim()
+ * @see #getMultiheadAttention()
+ * @generated
+ */
+ EAttribute getMultiheadAttention_Vdim();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.PReLU <em>PRe LU</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>PRe LU</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.PReLU
+ * @generated
+ */
+ EClass getPReLU();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.PReLU#getNum_parameters <em>Num parameters</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Num parameters</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.PReLU#getNum_parameters()
+ * @see #getPReLU()
+ * @generated
+ */
+ EAttribute getPReLU_Num_parameters();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.PReLU#getInit <em>Init</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Init</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.PReLU#getInit()
+ * @see #getPReLU()
+ * @generated
+ */
+ EAttribute getPReLU_Init();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ReLU <em>Re LU</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Re LU</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ReLU
+ * @generated
+ */
+ EClass getReLU();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ReLU6 <em>Re LU6</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Re LU6</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ReLU6
+ * @generated
+ */
+ EClass getReLU6();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.SELU <em>SELU</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>SELU</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.SELU
+ * @generated
+ */
+ EClass getSELU();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.RReLU <em>RRe LU</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>RRe LU</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.RReLU
+ * @generated
+ */
+ EClass getRReLU();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.RReLU#getLower <em>Lower</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Lower</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.RReLU#getLower()
+ * @see #getRReLU()
+ * @generated
+ */
+ EAttribute getRReLU_Lower();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.RReLU#getUpper <em>Upper</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Upper</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.RReLU#getUpper()
+ * @see #getRReLU()
+ * @generated
+ */
+ EAttribute getRReLU_Upper();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.CELU <em>CELU</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>CELU</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.CELU
+ * @generated
+ */
+ EClass getCELU();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.CELU#getAlpha <em>Alpha</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Alpha</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.CELU#getAlpha()
+ * @see #getCELU()
+ * @generated
+ */
+ EAttribute getCELU_Alpha();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.GELU <em>GELU</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>GELU</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.GELU
+ * @generated
+ */
+ EClass getGELU();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Sigmoid <em>Sigmoid</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sigmoid</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Sigmoid
+ * @generated
+ */
+ EClass getSigmoid();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softplus <em>Softplus</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Softplus</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softplus
+ * @generated
+ */
+ EClass getSoftplus();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softplus#getBeta <em>Beta</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Beta</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softplus#getBeta()
+ * @see #getSoftplus()
+ * @generated
+ */
+ EAttribute getSoftplus_Beta();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softplus#getThreshold <em>Threshold</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Threshold</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softplus#getThreshold()
+ * @see #getSoftplus()
+ * @generated
+ */
+ EAttribute getSoftplus_Threshold();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softshrink <em>Softshrink</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Softshrink</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softshrink
+ * @generated
+ */
+ EClass getSoftshrink();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardshrink <em>Hardshrink</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hardshrink</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardshrink
+ * @generated
+ */
+ EClass getHardshrink();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softsign <em>Softsign</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Softsign</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softsign
+ * @generated
+ */
+ EClass getSoftsign();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Tanhshrink <em>Tanhshrink</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tanhshrink</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Tanhshrink
+ * @generated
+ */
+ EClass getTanhshrink();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Tanh <em>Tanh</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tanh</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Tanh
+ * @generated
+ */
+ EClass getTanh();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Threshold <em>Threshold</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Threshold</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Threshold
+ * @generated
+ */
+ EClass getThreshold();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Threshold#getThreshold <em>Threshold</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Threshold</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Threshold#getThreshold()
+ * @see #getThreshold()
+ * @generated
+ */
+ EAttribute getThreshold_Threshold();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Threshold#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Threshold#getValue()
+ * @see #getThreshold()
+ * @generated
+ */
+ EAttribute getThreshold_Value();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardtanh <em>Hardtanh</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Hardtanh</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardtanh
+ * @generated
+ */
+ EClass getHardtanh();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardtanh#getMin_val <em>Min val</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Min val</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardtanh#getMin_val()
+ * @see #getHardtanh()
+ * @generated
+ */
+ EAttribute getHardtanh_Min_val();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardtanh#getMax_val <em>Max val</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Max val</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardtanh#getMax_val()
+ * @see #getHardtanh()
+ * @generated
+ */
+ EAttribute getHardtanh_Max_val();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ NonLinearActivationsFactory getNonLinearActivationsFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.Nonlinear_activations_weightedsumnonlinearityImpl <em>Nonlinear activations weightedsumnonlinearity</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.Nonlinear_activations_weightedsumnonlinearityImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getNonlinear_activations_weightedsumnonlinearity()
+ * @generated
+ */
+ EClass NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY = eINSTANCE.getNonlinear_activations_weightedsumnonlinearity();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ELUImpl <em>ELU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ELUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getELU()
+ * @generated
+ */
+ EClass ELU = eINSTANCE.getELU();
+
+ /**
+ * The meta object literal for the '<em><b>Alpha</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ELU__ALPHA = eINSTANCE.getELU_Alpha();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.Nonlinear_activations_weightedsumnonlinearity_1Impl <em>Nonlinear activations weightedsumnonlinearity 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.Nonlinear_activations_weightedsumnonlinearity_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getNonlinear_activations_weightedsumnonlinearity_1()
+ * @generated
+ */
+ EClass NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1 = eINSTANCE.getNonlinear_activations_weightedsumnonlinearity_1();
+
+ /**
+ * The meta object literal for the '<em><b>Inplace</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE = eINSTANCE.getNonlinear_activations_weightedsumnonlinearity_1_Inplace();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.shrinkImpl <em>shrink</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.shrinkImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getshrink()
+ * @generated
+ */
+ EClass SHRINK = eINSTANCE.getshrink();
+
+ /**
+ * The meta object literal for the '<em><b>Lambd</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SHRINK__LAMBD = eINSTANCE.getshrink_Lambd();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.LeakyReLUImpl <em>Leaky Re LU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.LeakyReLUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getLeakyReLU()
+ * @generated
+ */
+ EClass LEAKY_RE_LU = eINSTANCE.getLeakyReLU();
+
+ /**
+ * The meta object literal for the '<em><b>Negative slope</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LEAKY_RE_LU__NEGATIVE_SLOPE = eINSTANCE.getLeakyReLU_Negative_slope();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.LogSigmoidImpl <em>Log Sigmoid</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.LogSigmoidImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getLogSigmoid()
+ * @generated
+ */
+ EClass LOG_SIGMOID = eINSTANCE.getLogSigmoid();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.MultiheadAttentionImpl <em>Multihead Attention</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.MultiheadAttentionImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getMultiheadAttention()
+ * @generated
+ */
+ EClass MULTIHEAD_ATTENTION = eINSTANCE.getMultiheadAttention();
+
+ /**
+ * The meta object literal for the '<em><b>Embed dim</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTIHEAD_ATTENTION__EMBED_DIM = eINSTANCE.getMultiheadAttention_Embed_dim();
+
+ /**
+ * The meta object literal for the '<em><b>Num heads</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTIHEAD_ATTENTION__NUM_HEADS = eINSTANCE.getMultiheadAttention_Num_heads();
+
+ /**
+ * The meta object literal for the '<em><b>Dropout</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTIHEAD_ATTENTION__DROPOUT = eINSTANCE.getMultiheadAttention_Dropout();
+
+ /**
+ * The meta object literal for the '<em><b>Bias</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTIHEAD_ATTENTION__BIAS = eINSTANCE.getMultiheadAttention_Bias();
+
+ /**
+ * The meta object literal for the '<em><b>Add bias kv</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTIHEAD_ATTENTION__ADD_BIAS_KV = eINSTANCE.getMultiheadAttention_Add_bias_kv();
+
+ /**
+ * The meta object literal for the '<em><b>Add zero attn</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTIHEAD_ATTENTION__ADD_ZERO_ATTN = eINSTANCE.getMultiheadAttention_Add_zero_attn();
+
+ /**
+ * The meta object literal for the '<em><b>Kdim</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTIHEAD_ATTENTION__KDIM = eINSTANCE.getMultiheadAttention_Kdim();
+
+ /**
+ * The meta object literal for the '<em><b>Vdim</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MULTIHEAD_ATTENTION__VDIM = eINSTANCE.getMultiheadAttention_Vdim();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.PReLUImpl <em>PRe LU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.PReLUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getPReLU()
+ * @generated
+ */
+ EClass PRE_LU = eINSTANCE.getPReLU();
+
+ /**
+ * The meta object literal for the '<em><b>Num parameters</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PRE_LU__NUM_PARAMETERS = eINSTANCE.getPReLU_Num_parameters();
+
+ /**
+ * The meta object literal for the '<em><b>Init</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PRE_LU__INIT = eINSTANCE.getPReLU_Init();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ReLUImpl <em>Re LU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ReLUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getReLU()
+ * @generated
+ */
+ EClass RE_LU = eINSTANCE.getReLU();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ReLU6Impl <em>Re LU6</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ReLU6Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getReLU6()
+ * @generated
+ */
+ EClass RE_LU6 = eINSTANCE.getReLU6();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SELUImpl <em>SELU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SELUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getSELU()
+ * @generated
+ */
+ EClass SELU = eINSTANCE.getSELU();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.RReLUImpl <em>RRe LU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.RReLUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getRReLU()
+ * @generated
+ */
+ EClass RRE_LU = eINSTANCE.getRReLU();
+
+ /**
+ * The meta object literal for the '<em><b>Lower</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RRE_LU__LOWER = eINSTANCE.getRReLU_Lower();
+
+ /**
+ * The meta object literal for the '<em><b>Upper</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RRE_LU__UPPER = eINSTANCE.getRReLU_Upper();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.CELUImpl <em>CELU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.CELUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getCELU()
+ * @generated
+ */
+ EClass CELU = eINSTANCE.getCELU();
+
+ /**
+ * The meta object literal for the '<em><b>Alpha</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CELU__ALPHA = eINSTANCE.getCELU_Alpha();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.GELUImpl <em>GELU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.GELUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getGELU()
+ * @generated
+ */
+ EClass GELU = eINSTANCE.getGELU();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SigmoidImpl <em>Sigmoid</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SigmoidImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getSigmoid()
+ * @generated
+ */
+ EClass SIGMOID = eINSTANCE.getSigmoid();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SoftplusImpl <em>Softplus</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SoftplusImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getSoftplus()
+ * @generated
+ */
+ EClass SOFTPLUS = eINSTANCE.getSoftplus();
+
+ /**
+ * The meta object literal for the '<em><b>Beta</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SOFTPLUS__BETA = eINSTANCE.getSoftplus_Beta();
+
+ /**
+ * The meta object literal for the '<em><b>Threshold</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SOFTPLUS__THRESHOLD = eINSTANCE.getSoftplus_Threshold();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SoftshrinkImpl <em>Softshrink</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SoftshrinkImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getSoftshrink()
+ * @generated
+ */
+ EClass SOFTSHRINK = eINSTANCE.getSoftshrink();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.HardshrinkImpl <em>Hardshrink</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.HardshrinkImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getHardshrink()
+ * @generated
+ */
+ EClass HARDSHRINK = eINSTANCE.getHardshrink();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SoftsignImpl <em>Softsign</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SoftsignImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getSoftsign()
+ * @generated
+ */
+ EClass SOFTSIGN = eINSTANCE.getSoftsign();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.TanhshrinkImpl <em>Tanhshrink</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.TanhshrinkImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getTanhshrink()
+ * @generated
+ */
+ EClass TANHSHRINK = eINSTANCE.getTanhshrink();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.TanhImpl <em>Tanh</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.TanhImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getTanh()
+ * @generated
+ */
+ EClass TANH = eINSTANCE.getTanh();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ThresholdImpl <em>Threshold</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ThresholdImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getThreshold()
+ * @generated
+ */
+ EClass THRESHOLD = eINSTANCE.getThreshold();
+
+ /**
+ * The meta object literal for the '<em><b>Threshold</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute THRESHOLD__THRESHOLD = eINSTANCE.getThreshold_Threshold();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute THRESHOLD__VALUE = eINSTANCE.getThreshold_Value();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.HardtanhImpl <em>Hardtanh</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.HardtanhImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl#getHardtanh()
+ * @generated
+ */
+ EClass HARDTANH = eINSTANCE.getHardtanh();
+
+ /**
+ * The meta object literal for the '<em><b>Min val</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HARDTANH__MIN_VAL = eINSTANCE.getHardtanh_Min_val();
+
+ /**
+ * The meta object literal for the '<em><b>Max val</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute HARDTANH__MAX_VAL = eINSTANCE.getHardtanh_Max_val();
+
+ }
+
+} //NonLinearActivationsPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity.java
new file mode 100644
index 0000000..61ba822
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Nonlinear activations weightedsumnonlinearity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getNonlinear_activations_weightedsumnonlinearity()
+ * @model abstract="true"
+ * annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='Non-linear_activations_(weighted sum, nonlinearity)'"
+ * @generated
+ */
+public interface Nonlinear_activations_weightedsumnonlinearity extends Model {
+} // Nonlinear_activations_weightedsumnonlinearity
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity_1.java
new file mode 100644
index 0000000..77591eb
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Nonlinear_activations_weightedsumnonlinearity_1.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Nonlinear activations weightedsumnonlinearity 1</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity_1#isInplace <em>Inplace</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getNonlinear_activations_weightedsumnonlinearity_1()
+ * @model abstract="true"
+ * annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='Non-linear_activations_(weighted sum, nonlinearity)_1'"
+ * @generated
+ */
+public interface Nonlinear_activations_weightedsumnonlinearity_1 extends Nonlinear_activations_weightedsumnonlinearity {
+ /**
+ * Returns the value of the '<em><b>Inplace</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Inplace</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Inplace</em>' attribute.
+ * @see #setInplace(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getNonlinear_activations_weightedsumnonlinearity_1_Inplace()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isInplace();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity_1#isInplace <em>Inplace</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Inplace</em>' attribute.
+ * @see #isInplace()
+ * @generated
+ */
+ void setInplace(boolean value);
+
+} // Nonlinear_activations_weightedsumnonlinearity_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/PReLU.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/PReLU.java
new file mode 100644
index 0000000..cb336fb
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/PReLU.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>PRe LU</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.PReLU#getNum_parameters <em>Num parameters</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.PReLU#getInit <em>Init</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getPReLU()
+ * @model
+ * @generated
+ */
+public interface PReLU extends Nonlinear_activations_weightedsumnonlinearity {
+ /**
+ * Returns the value of the '<em><b>Num parameters</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Num parameters</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Num parameters</em>' attribute.
+ * @see #setNum_parameters(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getPReLU_Num_parameters()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getNum_parameters();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.PReLU#getNum_parameters <em>Num parameters</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Num parameters</em>' attribute.
+ * @see #getNum_parameters()
+ * @generated
+ */
+ void setNum_parameters(int value);
+
+ /**
+ * Returns the value of the '<em><b>Init</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Init</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Init</em>' attribute.
+ * @see #setInit(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getPReLU_Init()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getInit();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.PReLU#getInit <em>Init</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Init</em>' attribute.
+ * @see #getInit()
+ * @generated
+ */
+ void setInit(double value);
+
+} // PReLU
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/RReLU.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/RReLU.java
new file mode 100644
index 0000000..ad3a3a8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/RReLU.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>RRe LU</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.RReLU#getLower <em>Lower</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.RReLU#getUpper <em>Upper</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getRReLU()
+ * @model
+ * @generated
+ */
+public interface RReLU extends Nonlinear_activations_weightedsumnonlinearity_1 {
+ /**
+ * Returns the value of the '<em><b>Lower</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lower</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lower</em>' attribute.
+ * @see #setLower(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getRReLU_Lower()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getLower();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.RReLU#getLower <em>Lower</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lower</em>' attribute.
+ * @see #getLower()
+ * @generated
+ */
+ void setLower(double value);
+
+ /**
+ * Returns the value of the '<em><b>Upper</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Upper</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Upper</em>' attribute.
+ * @see #setUpper(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getRReLU_Upper()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getUpper();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.RReLU#getUpper <em>Upper</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Upper</em>' attribute.
+ * @see #getUpper()
+ * @generated
+ */
+ void setUpper(double value);
+
+} // RReLU
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/ReLU.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/ReLU.java
new file mode 100644
index 0000000..7115151
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/ReLU.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Re LU</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getReLU()
+ * @model
+ * @generated
+ */
+public interface ReLU extends Nonlinear_activations_weightedsumnonlinearity_1 {
+} // ReLU
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/ReLU6.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/ReLU6.java
new file mode 100644
index 0000000..03bf401
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/ReLU6.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Re LU6</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getReLU6()
+ * @model
+ * @generated
+ */
+public interface ReLU6 extends Nonlinear_activations_weightedsumnonlinearity_1 {
+} // ReLU6
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/SELU.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/SELU.java
new file mode 100644
index 0000000..02cb743
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/SELU.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>SELU</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getSELU()
+ * @model
+ * @generated
+ */
+public interface SELU extends Nonlinear_activations_weightedsumnonlinearity_1 {
+} // SELU
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Sigmoid.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Sigmoid.java
new file mode 100644
index 0000000..d2a7443
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Sigmoid.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sigmoid</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getSigmoid()
+ * @model
+ * @generated
+ */
+public interface Sigmoid extends Nonlinear_activations_weightedsumnonlinearity {
+} // Sigmoid
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Softplus.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Softplus.java
new file mode 100644
index 0000000..bc7f3f6
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Softplus.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Softplus</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softplus#getBeta <em>Beta</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softplus#getThreshold <em>Threshold</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getSoftplus()
+ * @model
+ * @generated
+ */
+public interface Softplus extends Nonlinear_activations_weightedsumnonlinearity {
+ /**
+ * Returns the value of the '<em><b>Beta</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Beta</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Beta</em>' attribute.
+ * @see #setBeta(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getSoftplus_Beta()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getBeta();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softplus#getBeta <em>Beta</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Beta</em>' attribute.
+ * @see #getBeta()
+ * @generated
+ */
+ void setBeta(double value);
+
+ /**
+ * Returns the value of the '<em><b>Threshold</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Threshold</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Threshold</em>' attribute.
+ * @see #setThreshold(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getSoftplus_Threshold()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getThreshold();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softplus#getThreshold <em>Threshold</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Threshold</em>' attribute.
+ * @see #getThreshold()
+ * @generated
+ */
+ void setThreshold(double value);
+
+} // Softplus
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Softshrink.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Softshrink.java
new file mode 100644
index 0000000..6c70394
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Softshrink.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Softshrink</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getSoftshrink()
+ * @model
+ * @generated
+ */
+public interface Softshrink extends shrink {
+} // Softshrink
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Softsign.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Softsign.java
new file mode 100644
index 0000000..74e9e9d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Softsign.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Softsign</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getSoftsign()
+ * @model
+ * @generated
+ */
+public interface Softsign extends Nonlinear_activations_weightedsumnonlinearity {
+} // Softsign
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Tanh.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Tanh.java
new file mode 100644
index 0000000..5343176
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Tanh.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Tanh</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getTanh()
+ * @model
+ * @generated
+ */
+public interface Tanh extends Nonlinear_activations_weightedsumnonlinearity {
+} // Tanh
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Tanhshrink.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Tanhshrink.java
new file mode 100644
index 0000000..d92919f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Tanhshrink.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Tanhshrink</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getTanhshrink()
+ * @model
+ * @generated
+ */
+public interface Tanhshrink extends Nonlinear_activations_weightedsumnonlinearity {
+} // Tanhshrink
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Threshold.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Threshold.java
new file mode 100644
index 0000000..7ae0bcd
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/Threshold.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Threshold</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Threshold#getThreshold <em>Threshold</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Threshold#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getThreshold()
+ * @model
+ * @generated
+ */
+public interface Threshold extends Nonlinear_activations_weightedsumnonlinearity_1 {
+ /**
+ * Returns the value of the '<em><b>Threshold</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Threshold</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Threshold</em>' attribute.
+ * @see #setThreshold(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getThreshold_Threshold()
+ * @model dataType="org.eclipse.uml2.types.Real" required="true" ordered="false"
+ * @generated
+ */
+ double getThreshold();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Threshold#getThreshold <em>Threshold</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Threshold</em>' attribute.
+ * @see #getThreshold()
+ * @generated
+ */
+ void setThreshold(double value);
+
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getThreshold_Value()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Threshold#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(int value);
+
+} // Threshold
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/CELUImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/CELUImpl.java
new file mode 100644
index 0000000..8287b02
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/CELUImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.CELU;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>CELU</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.CELUImpl#getAlpha <em>Alpha</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class CELUImpl extends Nonlinear_activations_weightedsumnonlinearity_1Impl implements CELU {
+ /**
+ * The default value of the '{@link #getAlpha() <em>Alpha</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAlpha()
+ * @generated
+ * @ordered
+ */
+ protected static final double ALPHA_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getAlpha() <em>Alpha</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAlpha()
+ * @generated
+ * @ordered
+ */
+ protected double alpha = ALPHA_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CELUImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.CELU;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getAlpha() {
+ return alpha;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setAlpha(double newAlpha) {
+ double oldAlpha = alpha;
+ alpha = newAlpha;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.CELU__ALPHA, oldAlpha, alpha));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.CELU__ALPHA:
+ return getAlpha();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.CELU__ALPHA:
+ setAlpha((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.CELU__ALPHA:
+ setAlpha(ALPHA_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.CELU__ALPHA:
+ return alpha != ALPHA_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (alpha: "); //$NON-NLS-1$
+ result.append(alpha);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CELUImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/ELUImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/ELUImpl.java
new file mode 100644
index 0000000..11a9811
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/ELUImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ELU;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>ELU</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ELUImpl#getAlpha <em>Alpha</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ELUImpl extends Nonlinear_activations_weightedsumnonlinearity_1Impl implements ELU {
+ /**
+ * The default value of the '{@link #getAlpha() <em>Alpha</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAlpha()
+ * @generated
+ * @ordered
+ */
+ protected static final double ALPHA_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getAlpha() <em>Alpha</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAlpha()
+ * @generated
+ * @ordered
+ */
+ protected double alpha = ALPHA_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ELUImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.ELU;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getAlpha() {
+ return alpha;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setAlpha(double newAlpha) {
+ double oldAlpha = alpha;
+ alpha = newAlpha;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.ELU__ALPHA, oldAlpha, alpha));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.ELU__ALPHA:
+ return getAlpha();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.ELU__ALPHA:
+ setAlpha((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.ELU__ALPHA:
+ setAlpha(ALPHA_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.ELU__ALPHA:
+ return alpha != ALPHA_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (alpha: "); //$NON-NLS-1$
+ result.append(alpha);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ELUImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/GELUImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/GELUImpl.java
new file mode 100644
index 0000000..805c967
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/GELUImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.GELU;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>GELU</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GELUImpl extends Nonlinear_activations_weightedsumnonlinearityImpl implements GELU {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GELUImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.GELU;
+ }
+
+} //GELUImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/HardshrinkImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/HardshrinkImpl.java
new file mode 100644
index 0000000..3e3c6d6
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/HardshrinkImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardshrink;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Hardshrink</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class HardshrinkImpl extends shrinkImpl implements Hardshrink {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HardshrinkImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.HARDSHRINK;
+ }
+
+} //HardshrinkImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/HardtanhImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/HardtanhImpl.java
new file mode 100644
index 0000000..a4b1fc4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/HardtanhImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardtanh;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Hardtanh</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.HardtanhImpl#getMin_val <em>Min val</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.HardtanhImpl#getMax_val <em>Max val</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class HardtanhImpl extends Nonlinear_activations_weightedsumnonlinearity_1Impl implements Hardtanh {
+ /**
+ * The default value of the '{@link #getMin_val() <em>Min val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMin_val()
+ * @generated
+ * @ordered
+ */
+ protected static final double MIN_VAL_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getMin_val() <em>Min val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMin_val()
+ * @generated
+ * @ordered
+ */
+ protected double min_val = MIN_VAL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMax_val() <em>Max val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMax_val()
+ * @generated
+ * @ordered
+ */
+ protected static final double MAX_VAL_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getMax_val() <em>Max val</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMax_val()
+ * @generated
+ * @ordered
+ */
+ protected double max_val = MAX_VAL_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected HardtanhImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.HARDTANH;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getMin_val() {
+ return min_val;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMin_val(double newMin_val) {
+ double oldMin_val = min_val;
+ min_val = newMin_val;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.HARDTANH__MIN_VAL, oldMin_val, min_val));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getMax_val() {
+ return max_val;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMax_val(double newMax_val) {
+ double oldMax_val = max_val;
+ max_val = newMax_val;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.HARDTANH__MAX_VAL, oldMax_val, max_val));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.HARDTANH__MIN_VAL:
+ return getMin_val();
+ case NonLinearActivationsPackage.HARDTANH__MAX_VAL:
+ return getMax_val();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.HARDTANH__MIN_VAL:
+ setMin_val((Double)newValue);
+ return;
+ case NonLinearActivationsPackage.HARDTANH__MAX_VAL:
+ setMax_val((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.HARDTANH__MIN_VAL:
+ setMin_val(MIN_VAL_EDEFAULT);
+ return;
+ case NonLinearActivationsPackage.HARDTANH__MAX_VAL:
+ setMax_val(MAX_VAL_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.HARDTANH__MIN_VAL:
+ return min_val != MIN_VAL_EDEFAULT;
+ case NonLinearActivationsPackage.HARDTANH__MAX_VAL:
+ return max_val != MAX_VAL_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (min_val: "); //$NON-NLS-1$
+ result.append(min_val);
+ result.append(", max_val: "); //$NON-NLS-1$
+ result.append(max_val);
+ result.append(')');
+ return result.toString();
+ }
+
+} //HardtanhImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/LeakyReLUImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/LeakyReLUImpl.java
new file mode 100644
index 0000000..6590af8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/LeakyReLUImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LeakyReLU;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Leaky Re LU</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.LeakyReLUImpl#getNegative_slope <em>Negative slope</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LeakyReLUImpl extends Nonlinear_activations_weightedsumnonlinearity_1Impl implements LeakyReLU {
+ /**
+ * The default value of the '{@link #getNegative_slope() <em>Negative slope</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNegative_slope()
+ * @generated
+ * @ordered
+ */
+ protected static final double NEGATIVE_SLOPE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getNegative_slope() <em>Negative slope</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNegative_slope()
+ * @generated
+ * @ordered
+ */
+ protected double negative_slope = NEGATIVE_SLOPE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LeakyReLUImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.LEAKY_RE_LU;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getNegative_slope() {
+ return negative_slope;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNegative_slope(double newNegative_slope) {
+ double oldNegative_slope = negative_slope;
+ negative_slope = newNegative_slope;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.LEAKY_RE_LU__NEGATIVE_SLOPE, oldNegative_slope, negative_slope));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.LEAKY_RE_LU__NEGATIVE_SLOPE:
+ return getNegative_slope();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.LEAKY_RE_LU__NEGATIVE_SLOPE:
+ setNegative_slope((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.LEAKY_RE_LU__NEGATIVE_SLOPE:
+ setNegative_slope(NEGATIVE_SLOPE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.LEAKY_RE_LU__NEGATIVE_SLOPE:
+ return negative_slope != NEGATIVE_SLOPE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (negative_slope: "); //$NON-NLS-1$
+ result.append(negative_slope);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LeakyReLUImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/LogSigmoidImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/LogSigmoidImpl.java
new file mode 100644
index 0000000..c9d00ce
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/LogSigmoidImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LogSigmoid;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Log Sigmoid</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class LogSigmoidImpl extends Nonlinear_activations_weightedsumnonlinearityImpl implements LogSigmoid {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LogSigmoidImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.LOG_SIGMOID;
+ }
+
+} //LogSigmoidImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/MultiheadAttentionImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/MultiheadAttentionImpl.java
new file mode 100644
index 0000000..f3aa9e8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/MultiheadAttentionImpl.java
@@ -0,0 +1,565 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multihead Attention</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.MultiheadAttentionImpl#getEmbed_dim <em>Embed dim</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.MultiheadAttentionImpl#getNum_heads <em>Num heads</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.MultiheadAttentionImpl#getDropout <em>Dropout</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.MultiheadAttentionImpl#isBias <em>Bias</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.MultiheadAttentionImpl#isAdd_bias_kv <em>Add bias kv</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.MultiheadAttentionImpl#isAdd_zero_attn <em>Add zero attn</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.MultiheadAttentionImpl#getKdim <em>Kdim</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.MultiheadAttentionImpl#getVdim <em>Vdim</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MultiheadAttentionImpl extends Nonlinear_activations_weightedsumnonlinearityImpl implements MultiheadAttention {
+ /**
+ * The default value of the '{@link #getEmbed_dim() <em>Embed dim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEmbed_dim()
+ * @generated
+ * @ordered
+ */
+ protected static final int EMBED_DIM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getEmbed_dim() <em>Embed dim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEmbed_dim()
+ * @generated
+ * @ordered
+ */
+ protected int embed_dim = EMBED_DIM_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNum_heads() <em>Num heads</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_heads()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUM_HEADS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNum_heads() <em>Num heads</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_heads()
+ * @generated
+ * @ordered
+ */
+ protected int num_heads = NUM_HEADS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDropout() <em>Dropout</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDropout()
+ * @generated
+ * @ordered
+ */
+ protected static final double DROPOUT_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getDropout() <em>Dropout</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDropout()
+ * @generated
+ * @ordered
+ */
+ protected double dropout = DROPOUT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isBias() <em>Bias</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBias()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean BIAS_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isBias() <em>Bias</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBias()
+ * @generated
+ * @ordered
+ */
+ protected boolean bias = BIAS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isAdd_bias_kv() <em>Add bias kv</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAdd_bias_kv()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ADD_BIAS_KV_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isAdd_bias_kv() <em>Add bias kv</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAdd_bias_kv()
+ * @generated
+ * @ordered
+ */
+ protected boolean add_bias_kv = ADD_BIAS_KV_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isAdd_zero_attn() <em>Add zero attn</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAdd_zero_attn()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ADD_ZERO_ATTN_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isAdd_zero_attn() <em>Add zero attn</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAdd_zero_attn()
+ * @generated
+ * @ordered
+ */
+ protected boolean add_zero_attn = ADD_ZERO_ATTN_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getKdim() <em>Kdim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKdim()
+ * @generated
+ * @ordered
+ */
+ protected static final int KDIM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getKdim() <em>Kdim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKdim()
+ * @generated
+ * @ordered
+ */
+ protected int kdim = KDIM_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getVdim() <em>Vdim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVdim()
+ * @generated
+ * @ordered
+ */
+ protected static final int VDIM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getVdim() <em>Vdim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVdim()
+ * @generated
+ * @ordered
+ */
+ protected int vdim = VDIM_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiheadAttentionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.MULTIHEAD_ATTENTION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getEmbed_dim() {
+ return embed_dim;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setEmbed_dim(int newEmbed_dim) {
+ int oldEmbed_dim = embed_dim;
+ embed_dim = newEmbed_dim;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.MULTIHEAD_ATTENTION__EMBED_DIM, oldEmbed_dim, embed_dim));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getNum_heads() {
+ return num_heads;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNum_heads(int newNum_heads) {
+ int oldNum_heads = num_heads;
+ num_heads = newNum_heads;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.MULTIHEAD_ATTENTION__NUM_HEADS, oldNum_heads, num_heads));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getDropout() {
+ return dropout;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDropout(double newDropout) {
+ double oldDropout = dropout;
+ dropout = newDropout;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.MULTIHEAD_ATTENTION__DROPOUT, oldDropout, dropout));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isBias() {
+ return bias;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBias(boolean newBias) {
+ boolean oldBias = bias;
+ bias = newBias;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.MULTIHEAD_ATTENTION__BIAS, oldBias, bias));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isAdd_bias_kv() {
+ return add_bias_kv;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setAdd_bias_kv(boolean newAdd_bias_kv) {
+ boolean oldAdd_bias_kv = add_bias_kv;
+ add_bias_kv = newAdd_bias_kv;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.MULTIHEAD_ATTENTION__ADD_BIAS_KV, oldAdd_bias_kv, add_bias_kv));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isAdd_zero_attn() {
+ return add_zero_attn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setAdd_zero_attn(boolean newAdd_zero_attn) {
+ boolean oldAdd_zero_attn = add_zero_attn;
+ add_zero_attn = newAdd_zero_attn;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.MULTIHEAD_ATTENTION__ADD_ZERO_ATTN, oldAdd_zero_attn, add_zero_attn));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getKdim() {
+ return kdim;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setKdim(int newKdim) {
+ int oldKdim = kdim;
+ kdim = newKdim;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.MULTIHEAD_ATTENTION__KDIM, oldKdim, kdim));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getVdim() {
+ return vdim;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setVdim(int newVdim) {
+ int oldVdim = vdim;
+ vdim = newVdim;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.MULTIHEAD_ATTENTION__VDIM, oldVdim, vdim));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__EMBED_DIM:
+ return getEmbed_dim();
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__NUM_HEADS:
+ return getNum_heads();
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__DROPOUT:
+ return getDropout();
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__BIAS:
+ return isBias();
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__ADD_BIAS_KV:
+ return isAdd_bias_kv();
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__ADD_ZERO_ATTN:
+ return isAdd_zero_attn();
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__KDIM:
+ return getKdim();
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__VDIM:
+ return getVdim();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__EMBED_DIM:
+ setEmbed_dim((Integer)newValue);
+ return;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__NUM_HEADS:
+ setNum_heads((Integer)newValue);
+ return;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__DROPOUT:
+ setDropout((Double)newValue);
+ return;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__BIAS:
+ setBias((Boolean)newValue);
+ return;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__ADD_BIAS_KV:
+ setAdd_bias_kv((Boolean)newValue);
+ return;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__ADD_ZERO_ATTN:
+ setAdd_zero_attn((Boolean)newValue);
+ return;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__KDIM:
+ setKdim((Integer)newValue);
+ return;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__VDIM:
+ setVdim((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__EMBED_DIM:
+ setEmbed_dim(EMBED_DIM_EDEFAULT);
+ return;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__NUM_HEADS:
+ setNum_heads(NUM_HEADS_EDEFAULT);
+ return;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__DROPOUT:
+ setDropout(DROPOUT_EDEFAULT);
+ return;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__BIAS:
+ setBias(BIAS_EDEFAULT);
+ return;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__ADD_BIAS_KV:
+ setAdd_bias_kv(ADD_BIAS_KV_EDEFAULT);
+ return;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__ADD_ZERO_ATTN:
+ setAdd_zero_attn(ADD_ZERO_ATTN_EDEFAULT);
+ return;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__KDIM:
+ setKdim(KDIM_EDEFAULT);
+ return;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__VDIM:
+ setVdim(VDIM_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__EMBED_DIM:
+ return embed_dim != EMBED_DIM_EDEFAULT;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__NUM_HEADS:
+ return num_heads != NUM_HEADS_EDEFAULT;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__DROPOUT:
+ return dropout != DROPOUT_EDEFAULT;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__BIAS:
+ return bias != BIAS_EDEFAULT;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__ADD_BIAS_KV:
+ return add_bias_kv != ADD_BIAS_KV_EDEFAULT;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__ADD_ZERO_ATTN:
+ return add_zero_attn != ADD_ZERO_ATTN_EDEFAULT;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__KDIM:
+ return kdim != KDIM_EDEFAULT;
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION__VDIM:
+ return vdim != VDIM_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (embed_dim: "); //$NON-NLS-1$
+ result.append(embed_dim);
+ result.append(", num_heads: "); //$NON-NLS-1$
+ result.append(num_heads);
+ result.append(", dropout: "); //$NON-NLS-1$
+ result.append(dropout);
+ result.append(", bias: "); //$NON-NLS-1$
+ result.append(bias);
+ result.append(", add_bias_kv: "); //$NON-NLS-1$
+ result.append(add_bias_kv);
+ result.append(", add_zero_attn: "); //$NON-NLS-1$
+ result.append(add_zero_attn);
+ result.append(", kdim: "); //$NON-NLS-1$
+ result.append(kdim);
+ result.append(", vdim: "); //$NON-NLS-1$
+ result.append(vdim);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MultiheadAttentionImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/NonLinearActivationsFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/NonLinearActivationsFactoryImpl.java
new file mode 100644
index 0000000..8ec0dd4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/NonLinearActivationsFactoryImpl.java
@@ -0,0 +1,334 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NonLinearActivationsFactoryImpl extends EFactoryImpl implements NonLinearActivationsFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static NonLinearActivationsFactory init() {
+ try {
+ NonLinearActivationsFactory theNonLinearActivationsFactory = (NonLinearActivationsFactory)EPackage.Registry.INSTANCE.getEFactory(NonLinearActivationsPackage.eNS_URI);
+ if (theNonLinearActivationsFactory != null) {
+ return theNonLinearActivationsFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new NonLinearActivationsFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NonLinearActivationsFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case NonLinearActivationsPackage.ELU: return createELU();
+ case NonLinearActivationsPackage.LEAKY_RE_LU: return createLeakyReLU();
+ case NonLinearActivationsPackage.LOG_SIGMOID: return createLogSigmoid();
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION: return createMultiheadAttention();
+ case NonLinearActivationsPackage.PRE_LU: return createPReLU();
+ case NonLinearActivationsPackage.RE_LU: return createReLU();
+ case NonLinearActivationsPackage.RE_LU6: return createReLU6();
+ case NonLinearActivationsPackage.SELU: return createSELU();
+ case NonLinearActivationsPackage.RRE_LU: return createRReLU();
+ case NonLinearActivationsPackage.CELU: return createCELU();
+ case NonLinearActivationsPackage.GELU: return createGELU();
+ case NonLinearActivationsPackage.SIGMOID: return createSigmoid();
+ case NonLinearActivationsPackage.SOFTPLUS: return createSoftplus();
+ case NonLinearActivationsPackage.SOFTSHRINK: return createSoftshrink();
+ case NonLinearActivationsPackage.HARDSHRINK: return createHardshrink();
+ case NonLinearActivationsPackage.SOFTSIGN: return createSoftsign();
+ case NonLinearActivationsPackage.TANHSHRINK: return createTanhshrink();
+ case NonLinearActivationsPackage.TANH: return createTanh();
+ case NonLinearActivationsPackage.THRESHOLD: return createThreshold();
+ case NonLinearActivationsPackage.HARDTANH: return createHardtanh();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ELU createELU() {
+ ELUImpl elu = new ELUImpl();
+ return elu;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public LeakyReLU createLeakyReLU() {
+ LeakyReLUImpl leakyReLU = new LeakyReLUImpl();
+ return leakyReLU;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public LogSigmoid createLogSigmoid() {
+ LogSigmoidImpl logSigmoid = new LogSigmoidImpl();
+ return logSigmoid;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public MultiheadAttention createMultiheadAttention() {
+ MultiheadAttentionImpl multiheadAttention = new MultiheadAttentionImpl();
+ return multiheadAttention;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public PReLU createPReLU() {
+ PReLUImpl pReLU = new PReLUImpl();
+ return pReLU;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ReLU createReLU() {
+ ReLUImpl reLU = new ReLUImpl();
+ return reLU;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ReLU6 createReLU6() {
+ ReLU6Impl reLU6 = new ReLU6Impl();
+ return reLU6;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public SELU createSELU() {
+ SELUImpl selu = new SELUImpl();
+ return selu;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public RReLU createRReLU() {
+ RReLUImpl rReLU = new RReLUImpl();
+ return rReLU;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public CELU createCELU() {
+ CELUImpl celu = new CELUImpl();
+ return celu;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public GELU createGELU() {
+ GELUImpl gelu = new GELUImpl();
+ return gelu;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Sigmoid createSigmoid() {
+ SigmoidImpl sigmoid = new SigmoidImpl();
+ return sigmoid;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Softplus createSoftplus() {
+ SoftplusImpl softplus = new SoftplusImpl();
+ return softplus;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Softshrink createSoftshrink() {
+ SoftshrinkImpl softshrink = new SoftshrinkImpl();
+ return softshrink;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Hardshrink createHardshrink() {
+ HardshrinkImpl hardshrink = new HardshrinkImpl();
+ return hardshrink;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Softsign createSoftsign() {
+ SoftsignImpl softsign = new SoftsignImpl();
+ return softsign;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Tanhshrink createTanhshrink() {
+ TanhshrinkImpl tanhshrink = new TanhshrinkImpl();
+ return tanhshrink;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Tanh createTanh() {
+ TanhImpl tanh = new TanhImpl();
+ return tanh;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Threshold createThreshold() {
+ ThresholdImpl threshold = new ThresholdImpl();
+ return threshold;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Hardtanh createHardtanh() {
+ HardtanhImpl hardtanh = new HardtanhImpl();
+ return hardtanh;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NonLinearActivationsPackage getNonLinearActivationsPackage() {
+ return (NonLinearActivationsPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static NonLinearActivationsPackage getPackage() {
+ return NonLinearActivationsPackage.eINSTANCE;
+ }
+
+} //NonLinearActivationsFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/NonLinearActivationsPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/NonLinearActivationsPackageImpl.java
new file mode 100644
index 0000000..22492e9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/NonLinearActivationsPackageImpl.java
@@ -0,0 +1,1169 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardshrink;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardtanh;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LeakyReLU;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LogSigmoid;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity_1;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.PReLU;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.RReLU;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ReLU;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ReLU6;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Sigmoid;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softplus;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softshrink;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softsign;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Tanh;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Tanhshrink;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Threshold;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.shrink;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NonLinearActivationsPackageImpl extends EPackageImpl implements NonLinearActivationsPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass nonlinear_activations_weightedsumnonlinearityEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eluEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass nonlinear_activations_weightedsumnonlinearity_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass shrinkEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass leakyReLUEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass logSigmoidEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiheadAttentionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pReLUEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass reLUEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass reLU6EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass seluEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass rReLUEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass celuEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass geluEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sigmoidEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass softplusEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass softshrinkEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hardshrinkEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass softsignEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass tanhshrinkEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass tanhEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass thresholdEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass hardtanhEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private NonLinearActivationsPackageImpl() {
+ super(eNS_URI, NonLinearActivationsFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link NonLinearActivationsPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static NonLinearActivationsPackage init() {
+ if (isInited) return (NonLinearActivationsPackage)EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredNonLinearActivationsPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = registeredNonLinearActivationsPackage instanceof NonLinearActivationsPackageImpl ? (NonLinearActivationsPackageImpl)registeredNonLinearActivationsPackage : new NonLinearActivationsPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theNonLinearActivationsPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theNonLinearActivationsPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theNonLinearActivationsPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(NonLinearActivationsPackage.eNS_URI, theNonLinearActivationsPackage);
+ return theNonLinearActivationsPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getNonlinear_activations_weightedsumnonlinearity() {
+ return nonlinear_activations_weightedsumnonlinearityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getELU() {
+ return eluEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getELU_Alpha() {
+ return (EAttribute)eluEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getNonlinear_activations_weightedsumnonlinearity_1() {
+ return nonlinear_activations_weightedsumnonlinearity_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getNonlinear_activations_weightedsumnonlinearity_1_Inplace() {
+ return (EAttribute)nonlinear_activations_weightedsumnonlinearity_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getshrink() {
+ return shrinkEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getshrink_Lambd() {
+ return (EAttribute)shrinkEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLeakyReLU() {
+ return leakyReLUEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLeakyReLU_Negative_slope() {
+ return (EAttribute)leakyReLUEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLogSigmoid() {
+ return logSigmoidEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getMultiheadAttention() {
+ return multiheadAttentionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getMultiheadAttention_Embed_dim() {
+ return (EAttribute)multiheadAttentionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getMultiheadAttention_Num_heads() {
+ return (EAttribute)multiheadAttentionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getMultiheadAttention_Dropout() {
+ return (EAttribute)multiheadAttentionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getMultiheadAttention_Bias() {
+ return (EAttribute)multiheadAttentionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getMultiheadAttention_Add_bias_kv() {
+ return (EAttribute)multiheadAttentionEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getMultiheadAttention_Add_zero_attn() {
+ return (EAttribute)multiheadAttentionEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getMultiheadAttention_Kdim() {
+ return (EAttribute)multiheadAttentionEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getMultiheadAttention_Vdim() {
+ return (EAttribute)multiheadAttentionEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPReLU() {
+ return pReLUEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPReLU_Num_parameters() {
+ return (EAttribute)pReLUEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPReLU_Init() {
+ return (EAttribute)pReLUEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getReLU() {
+ return reLUEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getReLU6() {
+ return reLU6EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSELU() {
+ return seluEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getRReLU() {
+ return rReLUEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRReLU_Lower() {
+ return (EAttribute)rReLUEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRReLU_Upper() {
+ return (EAttribute)rReLUEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getCELU() {
+ return celuEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getCELU_Alpha() {
+ return (EAttribute)celuEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getGELU() {
+ return geluEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSigmoid() {
+ return sigmoidEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSoftplus() {
+ return softplusEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSoftplus_Beta() {
+ return (EAttribute)softplusEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSoftplus_Threshold() {
+ return (EAttribute)softplusEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSoftshrink() {
+ return softshrinkEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getHardshrink() {
+ return hardshrinkEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSoftsign() {
+ return softsignEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTanhshrink() {
+ return tanhshrinkEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTanh() {
+ return tanhEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getThreshold() {
+ return thresholdEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getThreshold_Threshold() {
+ return (EAttribute)thresholdEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getThreshold_Value() {
+ return (EAttribute)thresholdEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getHardtanh() {
+ return hardtanhEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getHardtanh_Min_val() {
+ return (EAttribute)hardtanhEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getHardtanh_Max_val() {
+ return (EAttribute)hardtanhEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NonLinearActivationsFactory getNonLinearActivationsFactory() {
+ return (NonLinearActivationsFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ nonlinear_activations_weightedsumnonlinearityEClass = createEClass(NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY);
+
+ eluEClass = createEClass(ELU);
+ createEAttribute(eluEClass, ELU__ALPHA);
+
+ nonlinear_activations_weightedsumnonlinearity_1EClass = createEClass(NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1);
+ createEAttribute(nonlinear_activations_weightedsumnonlinearity_1EClass, NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE);
+
+ shrinkEClass = createEClass(SHRINK);
+ createEAttribute(shrinkEClass, SHRINK__LAMBD);
+
+ leakyReLUEClass = createEClass(LEAKY_RE_LU);
+ createEAttribute(leakyReLUEClass, LEAKY_RE_LU__NEGATIVE_SLOPE);
+
+ logSigmoidEClass = createEClass(LOG_SIGMOID);
+
+ multiheadAttentionEClass = createEClass(MULTIHEAD_ATTENTION);
+ createEAttribute(multiheadAttentionEClass, MULTIHEAD_ATTENTION__EMBED_DIM);
+ createEAttribute(multiheadAttentionEClass, MULTIHEAD_ATTENTION__NUM_HEADS);
+ createEAttribute(multiheadAttentionEClass, MULTIHEAD_ATTENTION__DROPOUT);
+ createEAttribute(multiheadAttentionEClass, MULTIHEAD_ATTENTION__BIAS);
+ createEAttribute(multiheadAttentionEClass, MULTIHEAD_ATTENTION__ADD_BIAS_KV);
+ createEAttribute(multiheadAttentionEClass, MULTIHEAD_ATTENTION__ADD_ZERO_ATTN);
+ createEAttribute(multiheadAttentionEClass, MULTIHEAD_ATTENTION__KDIM);
+ createEAttribute(multiheadAttentionEClass, MULTIHEAD_ATTENTION__VDIM);
+
+ pReLUEClass = createEClass(PRE_LU);
+ createEAttribute(pReLUEClass, PRE_LU__NUM_PARAMETERS);
+ createEAttribute(pReLUEClass, PRE_LU__INIT);
+
+ reLUEClass = createEClass(RE_LU);
+
+ reLU6EClass = createEClass(RE_LU6);
+
+ seluEClass = createEClass(SELU);
+
+ rReLUEClass = createEClass(RRE_LU);
+ createEAttribute(rReLUEClass, RRE_LU__LOWER);
+ createEAttribute(rReLUEClass, RRE_LU__UPPER);
+
+ celuEClass = createEClass(CELU);
+ createEAttribute(celuEClass, CELU__ALPHA);
+
+ geluEClass = createEClass(GELU);
+
+ sigmoidEClass = createEClass(SIGMOID);
+
+ softplusEClass = createEClass(SOFTPLUS);
+ createEAttribute(softplusEClass, SOFTPLUS__BETA);
+ createEAttribute(softplusEClass, SOFTPLUS__THRESHOLD);
+
+ softshrinkEClass = createEClass(SOFTSHRINK);
+
+ hardshrinkEClass = createEClass(HARDSHRINK);
+
+ softsignEClass = createEClass(SOFTSIGN);
+
+ tanhshrinkEClass = createEClass(TANHSHRINK);
+
+ tanhEClass = createEClass(TANH);
+
+ thresholdEClass = createEClass(THRESHOLD);
+ createEAttribute(thresholdEClass, THRESHOLD__THRESHOLD);
+ createEAttribute(thresholdEClass, THRESHOLD__VALUE);
+
+ hardtanhEClass = createEClass(HARDTANH);
+ createEAttribute(hardtanhEClass, HARDTANH__MIN_VAL);
+ createEAttribute(hardtanhEClass, HARDTANH__MAX_VAL);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ nonlinear_activations_weightedsumnonlinearityEClass.getESuperTypes().add(theModulePackage.getModel());
+ eluEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity_1());
+ nonlinear_activations_weightedsumnonlinearity_1EClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity());
+ shrinkEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity());
+ leakyReLUEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity_1());
+ logSigmoidEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity());
+ multiheadAttentionEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity());
+ pReLUEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity());
+ reLUEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity_1());
+ reLU6EClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity_1());
+ seluEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity_1());
+ rReLUEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity_1());
+ celuEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity_1());
+ geluEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity());
+ sigmoidEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity());
+ softplusEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity());
+ softshrinkEClass.getESuperTypes().add(this.getshrink());
+ hardshrinkEClass.getESuperTypes().add(this.getshrink());
+ softsignEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity());
+ tanhshrinkEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity());
+ tanhEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity());
+ thresholdEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity_1());
+ hardtanhEClass.getESuperTypes().add(this.getNonlinear_activations_weightedsumnonlinearity_1());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(nonlinear_activations_weightedsumnonlinearityEClass, Nonlinear_activations_weightedsumnonlinearity.class, "Nonlinear_activations_weightedsumnonlinearity", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(eluEClass, org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ELU.class, "ELU", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getELU_Alpha(), theTypesPackage.getReal(), "alpha", null, 0, 1, org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ELU.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(nonlinear_activations_weightedsumnonlinearity_1EClass, Nonlinear_activations_weightedsumnonlinearity_1.class, "Nonlinear_activations_weightedsumnonlinearity_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getNonlinear_activations_weightedsumnonlinearity_1_Inplace(), theTypesPackage.getBoolean(), "inplace", null, 0, 1, Nonlinear_activations_weightedsumnonlinearity_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(shrinkEClass, shrink.class, "shrink", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getshrink_Lambd(), theTypesPackage.getReal(), "lambd", null, 0, 1, shrink.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(leakyReLUEClass, LeakyReLU.class, "LeakyReLU", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLeakyReLU_Negative_slope(), theTypesPackage.getReal(), "negative_slope", null, 0, 1, LeakyReLU.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(logSigmoidEClass, LogSigmoid.class, "LogSigmoid", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(multiheadAttentionEClass, MultiheadAttention.class, "MultiheadAttention", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getMultiheadAttention_Embed_dim(), theTypesPackage.getInteger(), "embed_dim", null, 1, 1, MultiheadAttention.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getMultiheadAttention_Num_heads(), theTypesPackage.getInteger(), "num_heads", null, 1, 1, MultiheadAttention.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getMultiheadAttention_Dropout(), theTypesPackage.getReal(), "dropout", null, 0, 1, MultiheadAttention.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getMultiheadAttention_Bias(), theTypesPackage.getBoolean(), "bias", null, 0, 1, MultiheadAttention.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getMultiheadAttention_Add_bias_kv(), theTypesPackage.getBoolean(), "add_bias_kv", null, 0, 1, MultiheadAttention.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getMultiheadAttention_Add_zero_attn(), theTypesPackage.getBoolean(), "add_zero_attn", null, 0, 1, MultiheadAttention.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getMultiheadAttention_Kdim(), theTypesPackage.getInteger(), "kdim", null, 0, 1, MultiheadAttention.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getMultiheadAttention_Vdim(), theTypesPackage.getInteger(), "vdim", null, 0, 1, MultiheadAttention.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(pReLUEClass, PReLU.class, "PReLU", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPReLU_Num_parameters(), theTypesPackage.getInteger(), "num_parameters", null, 0, 1, PReLU.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getPReLU_Init(), theTypesPackage.getReal(), "init", null, 0, 1, PReLU.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(reLUEClass, ReLU.class, "ReLU", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(reLU6EClass, ReLU6.class, "ReLU6", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(seluEClass, org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.SELU.class, "SELU", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(rReLUEClass, RReLU.class, "RReLU", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getRReLU_Lower(), theTypesPackage.getReal(), "lower", null, 0, 1, RReLU.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRReLU_Upper(), theTypesPackage.getReal(), "upper", null, 0, 1, RReLU.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(celuEClass, org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.CELU.class, "CELU", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getCELU_Alpha(), theTypesPackage.getReal(), "alpha", null, 0, 1, org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.CELU.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(geluEClass, org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.GELU.class, "GELU", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(sigmoidEClass, Sigmoid.class, "Sigmoid", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(softplusEClass, Softplus.class, "Softplus", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getSoftplus_Beta(), theTypesPackage.getReal(), "beta", null, 0, 1, Softplus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getSoftplus_Threshold(), theTypesPackage.getReal(), "threshold", null, 0, 1, Softplus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(softshrinkEClass, Softshrink.class, "Softshrink", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(hardshrinkEClass, Hardshrink.class, "Hardshrink", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(softsignEClass, Softsign.class, "Softsign", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(tanhshrinkEClass, Tanhshrink.class, "Tanhshrink", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(tanhEClass, Tanh.class, "Tanh", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(thresholdEClass, Threshold.class, "Threshold", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getThreshold_Threshold(), theTypesPackage.getReal(), "threshold", null, 1, 1, Threshold.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getThreshold_Value(), theTypesPackage.getInteger(), "value", null, 1, 1, Threshold.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(hardtanhEClass, Hardtanh.class, "Hardtanh", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getHardtanh_Min_val(), theTypesPackage.getReal(), "min_val", null, 0, 1, Hardtanh.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getHardtanh_Max_val(), theTypesPackage.getReal(), "max_val", null, 0, 1, Hardtanh.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ // Create annotations
+ // http://www.eclipse.org/uml2/2.0.0/UML
+ createUMLAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/uml2/2.0.0/UML</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createUMLAnnotations() {
+ String source = "http://www.eclipse.org/uml2/2.0.0/UML"; //$NON-NLS-1$
+ addAnnotation
+ (nonlinear_activations_weightedsumnonlinearityEClass,
+ source,
+ new String[] {
+ "originalName", "Non-linear_activations_(weighted sum, nonlinearity)" //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ addAnnotation
+ (nonlinear_activations_weightedsumnonlinearity_1EClass,
+ source,
+ new String[] {
+ "originalName", "Non-linear_activations_(weighted sum, nonlinearity)_1" //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ addAnnotation
+ (getMultiheadAttention_Add_bias_kv(),
+ source,
+ new String[] {
+ "originalName", "add_bias_kv " //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ }
+
+} //NonLinearActivationsPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/Nonlinear_activations_weightedsumnonlinearityImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/Nonlinear_activations_weightedsumnonlinearityImpl.java
new file mode 100644
index 0000000..a91f1a4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/Nonlinear_activations_weightedsumnonlinearityImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Nonlinear activations weightedsumnonlinearity</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class Nonlinear_activations_weightedsumnonlinearityImpl extends ModelImpl implements Nonlinear_activations_weightedsumnonlinearity {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Nonlinear_activations_weightedsumnonlinearityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY;
+ }
+
+} //Nonlinear_activations_weightedsumnonlinearityImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/Nonlinear_activations_weightedsumnonlinearity_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/Nonlinear_activations_weightedsumnonlinearity_1Impl.java
new file mode 100644
index 0000000..37287d8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/Nonlinear_activations_weightedsumnonlinearity_1Impl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Nonlinear activations weightedsumnonlinearity 1</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.Nonlinear_activations_weightedsumnonlinearity_1Impl#isInplace <em>Inplace</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Nonlinear_activations_weightedsumnonlinearity_1Impl extends Nonlinear_activations_weightedsumnonlinearityImpl implements Nonlinear_activations_weightedsumnonlinearity_1 {
+ /**
+ * The default value of the '{@link #isInplace() <em>Inplace</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInplace()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean INPLACE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isInplace() <em>Inplace</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInplace()
+ * @generated
+ * @ordered
+ */
+ protected boolean inplace = INPLACE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Nonlinear_activations_weightedsumnonlinearity_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isInplace() {
+ return inplace;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setInplace(boolean newInplace) {
+ boolean oldInplace = inplace;
+ inplace = newInplace;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE, oldInplace, inplace));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE:
+ return isInplace();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE:
+ setInplace((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE:
+ setInplace(INPLACE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1__INPLACE:
+ return inplace != INPLACE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (inplace: "); //$NON-NLS-1$
+ result.append(inplace);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Nonlinear_activations_weightedsumnonlinearity_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/PReLUImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/PReLUImpl.java
new file mode 100644
index 0000000..896f38c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/PReLUImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.PReLU;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>PRe LU</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.PReLUImpl#getNum_parameters <em>Num parameters</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.PReLUImpl#getInit <em>Init</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PReLUImpl extends Nonlinear_activations_weightedsumnonlinearityImpl implements PReLU {
+ /**
+ * The default value of the '{@link #getNum_parameters() <em>Num parameters</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_parameters()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUM_PARAMETERS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNum_parameters() <em>Num parameters</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_parameters()
+ * @generated
+ * @ordered
+ */
+ protected int num_parameters = NUM_PARAMETERS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getInit() <em>Init</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInit()
+ * @generated
+ * @ordered
+ */
+ protected static final double INIT_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getInit() <em>Init</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInit()
+ * @generated
+ * @ordered
+ */
+ protected double init = INIT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PReLUImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.PRE_LU;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getNum_parameters() {
+ return num_parameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNum_parameters(int newNum_parameters) {
+ int oldNum_parameters = num_parameters;
+ num_parameters = newNum_parameters;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.PRE_LU__NUM_PARAMETERS, oldNum_parameters, num_parameters));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getInit() {
+ return init;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setInit(double newInit) {
+ double oldInit = init;
+ init = newInit;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.PRE_LU__INIT, oldInit, init));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.PRE_LU__NUM_PARAMETERS:
+ return getNum_parameters();
+ case NonLinearActivationsPackage.PRE_LU__INIT:
+ return getInit();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.PRE_LU__NUM_PARAMETERS:
+ setNum_parameters((Integer)newValue);
+ return;
+ case NonLinearActivationsPackage.PRE_LU__INIT:
+ setInit((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.PRE_LU__NUM_PARAMETERS:
+ setNum_parameters(NUM_PARAMETERS_EDEFAULT);
+ return;
+ case NonLinearActivationsPackage.PRE_LU__INIT:
+ setInit(INIT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.PRE_LU__NUM_PARAMETERS:
+ return num_parameters != NUM_PARAMETERS_EDEFAULT;
+ case NonLinearActivationsPackage.PRE_LU__INIT:
+ return init != INIT_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (num_parameters: "); //$NON-NLS-1$
+ result.append(num_parameters);
+ result.append(", init: "); //$NON-NLS-1$
+ result.append(init);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PReLUImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/RReLUImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/RReLUImpl.java
new file mode 100644
index 0000000..63ba57c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/RReLUImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.RReLU;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>RRe LU</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.RReLUImpl#getLower <em>Lower</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.RReLUImpl#getUpper <em>Upper</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class RReLUImpl extends Nonlinear_activations_weightedsumnonlinearity_1Impl implements RReLU {
+ /**
+ * The default value of the '{@link #getLower() <em>Lower</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLower()
+ * @generated
+ * @ordered
+ */
+ protected static final double LOWER_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getLower() <em>Lower</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLower()
+ * @generated
+ * @ordered
+ */
+ protected double lower = LOWER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getUpper() <em>Upper</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpper()
+ * @generated
+ * @ordered
+ */
+ protected static final double UPPER_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getUpper() <em>Upper</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpper()
+ * @generated
+ * @ordered
+ */
+ protected double upper = UPPER_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RReLUImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.RRE_LU;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getLower() {
+ return lower;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setLower(double newLower) {
+ double oldLower = lower;
+ lower = newLower;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.RRE_LU__LOWER, oldLower, lower));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getUpper() {
+ return upper;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUpper(double newUpper) {
+ double oldUpper = upper;
+ upper = newUpper;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.RRE_LU__UPPER, oldUpper, upper));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.RRE_LU__LOWER:
+ return getLower();
+ case NonLinearActivationsPackage.RRE_LU__UPPER:
+ return getUpper();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.RRE_LU__LOWER:
+ setLower((Double)newValue);
+ return;
+ case NonLinearActivationsPackage.RRE_LU__UPPER:
+ setUpper((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.RRE_LU__LOWER:
+ setLower(LOWER_EDEFAULT);
+ return;
+ case NonLinearActivationsPackage.RRE_LU__UPPER:
+ setUpper(UPPER_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.RRE_LU__LOWER:
+ return lower != LOWER_EDEFAULT;
+ case NonLinearActivationsPackage.RRE_LU__UPPER:
+ return upper != UPPER_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (lower: "); //$NON-NLS-1$
+ result.append(lower);
+ result.append(", upper: "); //$NON-NLS-1$
+ result.append(upper);
+ result.append(')');
+ return result.toString();
+ }
+
+} //RReLUImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/ReLU6Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/ReLU6Impl.java
new file mode 100644
index 0000000..e726dcb
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/ReLU6Impl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ReLU6;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Re LU6</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ReLU6Impl extends Nonlinear_activations_weightedsumnonlinearity_1Impl implements ReLU6 {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReLU6Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.RE_LU6;
+ }
+
+} //ReLU6Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/ReLUImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/ReLUImpl.java
new file mode 100644
index 0000000..05c83c4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/ReLUImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ReLU;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Re LU</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ReLUImpl extends Nonlinear_activations_weightedsumnonlinearity_1Impl implements ReLU {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReLUImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.RE_LU;
+ }
+
+} //ReLUImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SELUImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SELUImpl.java
new file mode 100644
index 0000000..28c0f46
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SELUImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.SELU;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>SELU</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SELUImpl extends Nonlinear_activations_weightedsumnonlinearity_1Impl implements SELU {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SELUImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.SELU;
+ }
+
+} //SELUImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SigmoidImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SigmoidImpl.java
new file mode 100644
index 0000000..deaba4a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SigmoidImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Sigmoid;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sigmoid</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SigmoidImpl extends Nonlinear_activations_weightedsumnonlinearityImpl implements Sigmoid {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SigmoidImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.SIGMOID;
+ }
+
+} //SigmoidImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SoftplusImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SoftplusImpl.java
new file mode 100644
index 0000000..ffa49b7
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SoftplusImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softplus;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Softplus</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SoftplusImpl#getBeta <em>Beta</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.SoftplusImpl#getThreshold <em>Threshold</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SoftplusImpl extends Nonlinear_activations_weightedsumnonlinearityImpl implements Softplus {
+ /**
+ * The default value of the '{@link #getBeta() <em>Beta</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBeta()
+ * @generated
+ * @ordered
+ */
+ protected static final double BETA_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getBeta() <em>Beta</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBeta()
+ * @generated
+ * @ordered
+ */
+ protected double beta = BETA_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getThreshold() <em>Threshold</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThreshold()
+ * @generated
+ * @ordered
+ */
+ protected static final double THRESHOLD_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getThreshold() <em>Threshold</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThreshold()
+ * @generated
+ * @ordered
+ */
+ protected double threshold = THRESHOLD_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoftplusImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.SOFTPLUS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getBeta() {
+ return beta;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBeta(double newBeta) {
+ double oldBeta = beta;
+ beta = newBeta;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.SOFTPLUS__BETA, oldBeta, beta));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getThreshold() {
+ return threshold;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setThreshold(double newThreshold) {
+ double oldThreshold = threshold;
+ threshold = newThreshold;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.SOFTPLUS__THRESHOLD, oldThreshold, threshold));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.SOFTPLUS__BETA:
+ return getBeta();
+ case NonLinearActivationsPackage.SOFTPLUS__THRESHOLD:
+ return getThreshold();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.SOFTPLUS__BETA:
+ setBeta((Double)newValue);
+ return;
+ case NonLinearActivationsPackage.SOFTPLUS__THRESHOLD:
+ setThreshold((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.SOFTPLUS__BETA:
+ setBeta(BETA_EDEFAULT);
+ return;
+ case NonLinearActivationsPackage.SOFTPLUS__THRESHOLD:
+ setThreshold(THRESHOLD_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.SOFTPLUS__BETA:
+ return beta != BETA_EDEFAULT;
+ case NonLinearActivationsPackage.SOFTPLUS__THRESHOLD:
+ return threshold != THRESHOLD_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (beta: "); //$NON-NLS-1$
+ result.append(beta);
+ result.append(", threshold: "); //$NON-NLS-1$
+ result.append(threshold);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SoftplusImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SoftshrinkImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SoftshrinkImpl.java
new file mode 100644
index 0000000..2b53db9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SoftshrinkImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softshrink;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Softshrink</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SoftshrinkImpl extends shrinkImpl implements Softshrink {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoftshrinkImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.SOFTSHRINK;
+ }
+
+} //SoftshrinkImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SoftsignImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SoftsignImpl.java
new file mode 100644
index 0000000..219af1b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/SoftsignImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softsign;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Softsign</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SoftsignImpl extends Nonlinear_activations_weightedsumnonlinearityImpl implements Softsign {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoftsignImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.SOFTSIGN;
+ }
+
+} //SoftsignImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/TanhImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/TanhImpl.java
new file mode 100644
index 0000000..d38f202
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/TanhImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Tanh;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Tanh</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class TanhImpl extends Nonlinear_activations_weightedsumnonlinearityImpl implements Tanh {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TanhImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.TANH;
+ }
+
+} //TanhImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/TanhshrinkImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/TanhshrinkImpl.java
new file mode 100644
index 0000000..b6e93dd
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/TanhshrinkImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Tanhshrink;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Tanhshrink</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class TanhshrinkImpl extends Nonlinear_activations_weightedsumnonlinearityImpl implements Tanhshrink {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TanhshrinkImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.TANHSHRINK;
+ }
+
+} //TanhshrinkImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/ThresholdImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/ThresholdImpl.java
new file mode 100644
index 0000000..494d442
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/ThresholdImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Threshold;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Threshold</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ThresholdImpl#getThreshold <em>Threshold</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.ThresholdImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ThresholdImpl extends Nonlinear_activations_weightedsumnonlinearity_1Impl implements Threshold {
+ /**
+ * The default value of the '{@link #getThreshold() <em>Threshold</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThreshold()
+ * @generated
+ * @ordered
+ */
+ protected static final double THRESHOLD_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getThreshold() <em>Threshold</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getThreshold()
+ * @generated
+ * @ordered
+ */
+ protected double threshold = THRESHOLD_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final int VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected int value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ThresholdImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.THRESHOLD;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getThreshold() {
+ return threshold;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setThreshold(double newThreshold) {
+ double oldThreshold = threshold;
+ threshold = newThreshold;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.THRESHOLD__THRESHOLD, oldThreshold, threshold));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setValue(int newValue) {
+ int oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.THRESHOLD__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.THRESHOLD__THRESHOLD:
+ return getThreshold();
+ case NonLinearActivationsPackage.THRESHOLD__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.THRESHOLD__THRESHOLD:
+ setThreshold((Double)newValue);
+ return;
+ case NonLinearActivationsPackage.THRESHOLD__VALUE:
+ setValue((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.THRESHOLD__THRESHOLD:
+ setThreshold(THRESHOLD_EDEFAULT);
+ return;
+ case NonLinearActivationsPackage.THRESHOLD__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.THRESHOLD__THRESHOLD:
+ return threshold != THRESHOLD_EDEFAULT;
+ case NonLinearActivationsPackage.THRESHOLD__VALUE:
+ return value != VALUE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (threshold: "); //$NON-NLS-1$
+ result.append(threshold);
+ result.append(", value: "); //$NON-NLS-1$
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ThresholdImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/shrinkImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/shrinkImpl.java
new file mode 100644
index 0000000..5dad585
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/impl/shrinkImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.shrink;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>shrink</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.shrinkImpl#getLambd <em>Lambd</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class shrinkImpl extends Nonlinear_activations_weightedsumnonlinearityImpl implements shrink {
+ /**
+ * The default value of the '{@link #getLambd() <em>Lambd</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLambd()
+ * @generated
+ * @ordered
+ */
+ protected static final double LAMBD_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getLambd() <em>Lambd</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLambd()
+ * @generated
+ * @ordered
+ */
+ protected double lambd = LAMBD_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected shrinkImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return NonLinearActivationsPackage.Literals.SHRINK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getLambd() {
+ return lambd;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setLambd(double newLambd) {
+ double oldLambd = lambd;
+ lambd = newLambd;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, NonLinearActivationsPackage.SHRINK__LAMBD, oldLambd, lambd));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.SHRINK__LAMBD:
+ return getLambd();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.SHRINK__LAMBD:
+ setLambd((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.SHRINK__LAMBD:
+ setLambd(LAMBD_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case NonLinearActivationsPackage.SHRINK__LAMBD:
+ return lambd != LAMBD_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (lambd: "); //$NON-NLS-1$
+ result.append(lambd);
+ result.append(')');
+ return result.toString();
+ }
+
+} //shrinkImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/shrink.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/shrink.java
new file mode 100644
index 0000000..1fc6160
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/shrink.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>shrink</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.shrink#getLambd <em>Lambd</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getshrink()
+ * @model abstract="true"
+ * @generated
+ */
+public interface shrink extends Nonlinear_activations_weightedsumnonlinearity {
+ /**
+ * Returns the value of the '<em><b>Lambd</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Lambd</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Lambd</em>' attribute.
+ * @see #setLambd(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage#getshrink_Lambd()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getLambd();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.shrink#getLambd <em>Lambd</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Lambd</em>' attribute.
+ * @see #getLambd()
+ * @generated
+ */
+ void setLambd(double value);
+
+} // shrink
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/util/NonLinearActivationsAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/util/NonLinearActivationsAdapterFactory.java
new file mode 100644
index 0000000..9f4832b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/util/NonLinearActivationsAdapterFactory.java
@@ -0,0 +1,543 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage
+ * @generated
+ */
+public class NonLinearActivationsAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static NonLinearActivationsPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NonLinearActivationsAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = NonLinearActivationsPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NonLinearActivationsSwitch<Adapter> modelSwitch =
+ new NonLinearActivationsSwitch<Adapter>() {
+ @Override
+ public Adapter caseNonlinear_activations_weightedsumnonlinearity(Nonlinear_activations_weightedsumnonlinearity object) {
+ return createNonlinear_activations_weightedsumnonlinearityAdapter();
+ }
+ @Override
+ public Adapter caseELU(ELU object) {
+ return createELUAdapter();
+ }
+ @Override
+ public Adapter caseNonlinear_activations_weightedsumnonlinearity_1(Nonlinear_activations_weightedsumnonlinearity_1 object) {
+ return createNonlinear_activations_weightedsumnonlinearity_1Adapter();
+ }
+ @Override
+ public Adapter caseshrink(shrink object) {
+ return createshrinkAdapter();
+ }
+ @Override
+ public Adapter caseLeakyReLU(LeakyReLU object) {
+ return createLeakyReLUAdapter();
+ }
+ @Override
+ public Adapter caseLogSigmoid(LogSigmoid object) {
+ return createLogSigmoidAdapter();
+ }
+ @Override
+ public Adapter caseMultiheadAttention(MultiheadAttention object) {
+ return createMultiheadAttentionAdapter();
+ }
+ @Override
+ public Adapter casePReLU(PReLU object) {
+ return createPReLUAdapter();
+ }
+ @Override
+ public Adapter caseReLU(ReLU object) {
+ return createReLUAdapter();
+ }
+ @Override
+ public Adapter caseReLU6(ReLU6 object) {
+ return createReLU6Adapter();
+ }
+ @Override
+ public Adapter caseSELU(SELU object) {
+ return createSELUAdapter();
+ }
+ @Override
+ public Adapter caseRReLU(RReLU object) {
+ return createRReLUAdapter();
+ }
+ @Override
+ public Adapter caseCELU(CELU object) {
+ return createCELUAdapter();
+ }
+ @Override
+ public Adapter caseGELU(GELU object) {
+ return createGELUAdapter();
+ }
+ @Override
+ public Adapter caseSigmoid(Sigmoid object) {
+ return createSigmoidAdapter();
+ }
+ @Override
+ public Adapter caseSoftplus(Softplus object) {
+ return createSoftplusAdapter();
+ }
+ @Override
+ public Adapter caseSoftshrink(Softshrink object) {
+ return createSoftshrinkAdapter();
+ }
+ @Override
+ public Adapter caseHardshrink(Hardshrink object) {
+ return createHardshrinkAdapter();
+ }
+ @Override
+ public Adapter caseSoftsign(Softsign object) {
+ return createSoftsignAdapter();
+ }
+ @Override
+ public Adapter caseTanhshrink(Tanhshrink object) {
+ return createTanhshrinkAdapter();
+ }
+ @Override
+ public Adapter caseTanh(Tanh object) {
+ return createTanhAdapter();
+ }
+ @Override
+ public Adapter caseThreshold(Threshold object) {
+ return createThresholdAdapter();
+ }
+ @Override
+ public Adapter caseHardtanh(Hardtanh object) {
+ return createHardtanhAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity <em>Nonlinear activations weightedsumnonlinearity</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity
+ * @generated
+ */
+ public Adapter createNonlinear_activations_weightedsumnonlinearityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ELU <em>ELU</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ELU
+ * @generated
+ */
+ public Adapter createELUAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity_1 <em>Nonlinear activations weightedsumnonlinearity 1</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Nonlinear_activations_weightedsumnonlinearity_1
+ * @generated
+ */
+ public Adapter createNonlinear_activations_weightedsumnonlinearity_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.shrink <em>shrink</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.shrink
+ * @generated
+ */
+ public Adapter createshrinkAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LeakyReLU <em>Leaky Re LU</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LeakyReLU
+ * @generated
+ */
+ public Adapter createLeakyReLUAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LogSigmoid <em>Log Sigmoid</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.LogSigmoid
+ * @generated
+ */
+ public Adapter createLogSigmoidAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention <em>Multihead Attention</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.MultiheadAttention
+ * @generated
+ */
+ public Adapter createMultiheadAttentionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.PReLU <em>PRe LU</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.PReLU
+ * @generated
+ */
+ public Adapter createPReLUAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ReLU <em>Re LU</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ReLU
+ * @generated
+ */
+ public Adapter createReLUAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ReLU6 <em>Re LU6</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.ReLU6
+ * @generated
+ */
+ public Adapter createReLU6Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.SELU <em>SELU</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.SELU
+ * @generated
+ */
+ public Adapter createSELUAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.RReLU <em>RRe LU</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.RReLU
+ * @generated
+ */
+ public Adapter createRReLUAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.CELU <em>CELU</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.CELU
+ * @generated
+ */
+ public Adapter createCELUAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.GELU <em>GELU</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.GELU
+ * @generated
+ */
+ public Adapter createGELUAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Sigmoid <em>Sigmoid</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Sigmoid
+ * @generated
+ */
+ public Adapter createSigmoidAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softplus <em>Softplus</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softplus
+ * @generated
+ */
+ public Adapter createSoftplusAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softshrink <em>Softshrink</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softshrink
+ * @generated
+ */
+ public Adapter createSoftshrinkAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardshrink <em>Hardshrink</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardshrink
+ * @generated
+ */
+ public Adapter createHardshrinkAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softsign <em>Softsign</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Softsign
+ * @generated
+ */
+ public Adapter createSoftsignAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Tanhshrink <em>Tanhshrink</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Tanhshrink
+ * @generated
+ */
+ public Adapter createTanhshrinkAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Tanh <em>Tanh</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Tanh
+ * @generated
+ */
+ public Adapter createTanhAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Threshold <em>Threshold</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Threshold
+ * @generated
+ */
+ public Adapter createThresholdAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardtanh <em>Hardtanh</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.Hardtanh
+ * @generated
+ */
+ public Adapter createHardtanhAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //NonLinearActivationsAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/util/NonLinearActivationsSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/util/NonLinearActivationsSwitch.java
new file mode 100644
index 0000000..13d96f9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/NonLinearActivations/util/NonLinearActivationsSwitch.java
@@ -0,0 +1,652 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage
+ * @generated
+ */
+public class NonLinearActivationsSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static NonLinearActivationsPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NonLinearActivationsSwitch() {
+ if (modelPackage == null) {
+ modelPackage = NonLinearActivationsPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case NonLinearActivationsPackage.NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY: {
+ Nonlinear_activations_weightedsumnonlinearity nonlinear_activations_weightedsumnonlinearity = (Nonlinear_activations_weightedsumnonlinearity)theEObject;
+ T result = caseNonlinear_activations_weightedsumnonlinearity(nonlinear_activations_weightedsumnonlinearity);
+ if (result == null) result = caseModel(nonlinear_activations_weightedsumnonlinearity);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.ELU: {
+ ELU elu = (ELU)theEObject;
+ T result = caseELU(elu);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity_1(elu);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(elu);
+ if (result == null) result = caseModel(elu);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.NONLINEAR_ACTIVATIONS_WEIGHTEDSUMNONLINEARITY_1: {
+ Nonlinear_activations_weightedsumnonlinearity_1 nonlinear_activations_weightedsumnonlinearity_1 = (Nonlinear_activations_weightedsumnonlinearity_1)theEObject;
+ T result = caseNonlinear_activations_weightedsumnonlinearity_1(nonlinear_activations_weightedsumnonlinearity_1);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(nonlinear_activations_weightedsumnonlinearity_1);
+ if (result == null) result = caseModel(nonlinear_activations_weightedsumnonlinearity_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.SHRINK: {
+ shrink shrink = (shrink)theEObject;
+ T result = caseshrink(shrink);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(shrink);
+ if (result == null) result = caseModel(shrink);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.LEAKY_RE_LU: {
+ LeakyReLU leakyReLU = (LeakyReLU)theEObject;
+ T result = caseLeakyReLU(leakyReLU);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity_1(leakyReLU);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(leakyReLU);
+ if (result == null) result = caseModel(leakyReLU);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.LOG_SIGMOID: {
+ LogSigmoid logSigmoid = (LogSigmoid)theEObject;
+ T result = caseLogSigmoid(logSigmoid);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(logSigmoid);
+ if (result == null) result = caseModel(logSigmoid);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.MULTIHEAD_ATTENTION: {
+ MultiheadAttention multiheadAttention = (MultiheadAttention)theEObject;
+ T result = caseMultiheadAttention(multiheadAttention);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(multiheadAttention);
+ if (result == null) result = caseModel(multiheadAttention);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.PRE_LU: {
+ PReLU pReLU = (PReLU)theEObject;
+ T result = casePReLU(pReLU);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(pReLU);
+ if (result == null) result = caseModel(pReLU);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.RE_LU: {
+ ReLU reLU = (ReLU)theEObject;
+ T result = caseReLU(reLU);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity_1(reLU);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(reLU);
+ if (result == null) result = caseModel(reLU);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.RE_LU6: {
+ ReLU6 reLU6 = (ReLU6)theEObject;
+ T result = caseReLU6(reLU6);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity_1(reLU6);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(reLU6);
+ if (result == null) result = caseModel(reLU6);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.SELU: {
+ SELU selu = (SELU)theEObject;
+ T result = caseSELU(selu);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity_1(selu);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(selu);
+ if (result == null) result = caseModel(selu);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.RRE_LU: {
+ RReLU rReLU = (RReLU)theEObject;
+ T result = caseRReLU(rReLU);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity_1(rReLU);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(rReLU);
+ if (result == null) result = caseModel(rReLU);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.CELU: {
+ CELU celu = (CELU)theEObject;
+ T result = caseCELU(celu);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity_1(celu);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(celu);
+ if (result == null) result = caseModel(celu);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.GELU: {
+ GELU gelu = (GELU)theEObject;
+ T result = caseGELU(gelu);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(gelu);
+ if (result == null) result = caseModel(gelu);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.SIGMOID: {
+ Sigmoid sigmoid = (Sigmoid)theEObject;
+ T result = caseSigmoid(sigmoid);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(sigmoid);
+ if (result == null) result = caseModel(sigmoid);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.SOFTPLUS: {
+ Softplus softplus = (Softplus)theEObject;
+ T result = caseSoftplus(softplus);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(softplus);
+ if (result == null) result = caseModel(softplus);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.SOFTSHRINK: {
+ Softshrink softshrink = (Softshrink)theEObject;
+ T result = caseSoftshrink(softshrink);
+ if (result == null) result = caseshrink(softshrink);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(softshrink);
+ if (result == null) result = caseModel(softshrink);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.HARDSHRINK: {
+ Hardshrink hardshrink = (Hardshrink)theEObject;
+ T result = caseHardshrink(hardshrink);
+ if (result == null) result = caseshrink(hardshrink);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(hardshrink);
+ if (result == null) result = caseModel(hardshrink);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.SOFTSIGN: {
+ Softsign softsign = (Softsign)theEObject;
+ T result = caseSoftsign(softsign);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(softsign);
+ if (result == null) result = caseModel(softsign);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.TANHSHRINK: {
+ Tanhshrink tanhshrink = (Tanhshrink)theEObject;
+ T result = caseTanhshrink(tanhshrink);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(tanhshrink);
+ if (result == null) result = caseModel(tanhshrink);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.TANH: {
+ Tanh tanh = (Tanh)theEObject;
+ T result = caseTanh(tanh);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(tanh);
+ if (result == null) result = caseModel(tanh);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.THRESHOLD: {
+ Threshold threshold = (Threshold)theEObject;
+ T result = caseThreshold(threshold);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity_1(threshold);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(threshold);
+ if (result == null) result = caseModel(threshold);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case NonLinearActivationsPackage.HARDTANH: {
+ Hardtanh hardtanh = (Hardtanh)theEObject;
+ T result = caseHardtanh(hardtanh);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity_1(hardtanh);
+ if (result == null) result = caseNonlinear_activations_weightedsumnonlinearity(hardtanh);
+ if (result == null) result = caseModel(hardtanh);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Nonlinear activations weightedsumnonlinearity</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Nonlinear activations weightedsumnonlinearity</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNonlinear_activations_weightedsumnonlinearity(Nonlinear_activations_weightedsumnonlinearity object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>ELU</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>ELU</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseELU(ELU object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Nonlinear activations weightedsumnonlinearity 1</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Nonlinear activations weightedsumnonlinearity 1</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNonlinear_activations_weightedsumnonlinearity_1(Nonlinear_activations_weightedsumnonlinearity_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>shrink</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>shrink</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseshrink(shrink object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Leaky Re LU</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Leaky Re LU</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLeakyReLU(LeakyReLU object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Log Sigmoid</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Log Sigmoid</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLogSigmoid(LogSigmoid object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multihead Attention</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multihead Attention</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiheadAttention(MultiheadAttention object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>PRe LU</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>PRe LU</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePReLU(PReLU object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Re LU</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Re LU</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseReLU(ReLU object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Re LU6</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Re LU6</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseReLU6(ReLU6 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>SELU</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>SELU</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSELU(SELU object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>RRe LU</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>RRe LU</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRReLU(RReLU object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>CELU</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>CELU</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCELU(CELU object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>GELU</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>GELU</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGELU(GELU object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sigmoid</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sigmoid</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSigmoid(Sigmoid object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Softplus</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Softplus</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSoftplus(Softplus object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Softshrink</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Softshrink</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSoftshrink(Softshrink object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hardshrink</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Hardshrink</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHardshrink(Hardshrink object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Softsign</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Softsign</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSoftsign(Softsign object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Tanhshrink</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Tanhshrink</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTanhshrink(Tanhshrink object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Tanh</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Tanh</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTanh(Tanh object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Threshold</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Threshold</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseThreshold(Threshold object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Hardtanh</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Hardtanh</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHardtanh(Hardtanh object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //NonLinearActivationsSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/BatchNorm1d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/BatchNorm1d.java
new file mode 100644
index 0000000..552e893
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/BatchNorm1d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Batch Norm1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getBatchNorm1d()
+ * @model
+ * @generated
+ */
+public interface BatchNorm1d extends Normalization_layers_1_1_1 {
+} // BatchNorm1d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/BatchNorm2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/BatchNorm2d.java
new file mode 100644
index 0000000..cb19622
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/BatchNorm2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Batch Norm2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getBatchNorm2d()
+ * @model
+ * @generated
+ */
+public interface BatchNorm2d extends Normalization_layers_1_1_1 {
+} // BatchNorm2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/BatchNorm3d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/BatchNorm3d.java
new file mode 100644
index 0000000..0857ddc
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/BatchNorm3d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Batch Norm3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getBatchNorm3d()
+ * @model
+ * @generated
+ */
+public interface BatchNorm3d extends Normalization_layers_1_1_1 {
+} // BatchNorm3d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/GroupNorm.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/GroupNorm.java
new file mode 100644
index 0000000..0ddf07b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/GroupNorm.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Group Norm</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.GroupNorm#getNum_groups <em>Num groups</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.GroupNorm#getNum_channels <em>Num channels</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getGroupNorm()
+ * @model
+ * @generated
+ */
+public interface GroupNorm extends Normalization_layers_1_1 {
+ /**
+ * Returns the value of the '<em><b>Num groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Num groups</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Num groups</em>' attribute.
+ * @see #setNum_groups(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getGroupNorm_Num_groups()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getNum_groups();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.GroupNorm#getNum_groups <em>Num groups</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Num groups</em>' attribute.
+ * @see #getNum_groups()
+ * @generated
+ */
+ void setNum_groups(int value);
+
+ /**
+ * Returns the value of the '<em><b>Num channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Num channels</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Num channels</em>' attribute.
+ * @see #setNum_channels(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getGroupNorm_Num_channels()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getNum_channels();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.GroupNorm#getNum_channels <em>Num channels</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Num channels</em>' attribute.
+ * @see #getNum_channels()
+ * @generated
+ */
+ void setNum_channels(int value);
+
+} // GroupNorm
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/InstanceNorm1d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/InstanceNorm1d.java
new file mode 100644
index 0000000..a50655f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/InstanceNorm1d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Instance Norm1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getInstanceNorm1d()
+ * @model
+ * @generated
+ */
+public interface InstanceNorm1d extends Normalization_layers_1_1_1 {
+} // InstanceNorm1d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/InstanceNorm2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/InstanceNorm2d.java
new file mode 100644
index 0000000..0901fc8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/InstanceNorm2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Instance Norm2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getInstanceNorm2d()
+ * @model
+ * @generated
+ */
+public interface InstanceNorm2d extends Normalization_layers_1_1_1 {
+} // InstanceNorm2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/InstanceNorm3d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/InstanceNorm3d.java
new file mode 100644
index 0000000..7591d12
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/InstanceNorm3d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Instance Norm3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getInstanceNorm3d()
+ * @model
+ * @generated
+ */
+public interface InstanceNorm3d extends Normalization_layers_1_1_1 {
+} // InstanceNorm3d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/LayerNorm.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/LayerNorm.java
new file mode 100644
index 0000000..6f8e72b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/LayerNorm.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Layer Norm</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm#getNormalized_shape <em>Normalized shape</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm#isElementwise_affine <em>Elementwise affine</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getLayerNorm()
+ * @model
+ * @generated
+ */
+public interface LayerNorm extends Normalization_layers_1 {
+ /**
+ * Returns the value of the '<em><b>Normalized shape</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Normalized shape</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Normalized shape</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getLayerNorm_Normalized_shape()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getNormalized_shape();
+
+ /**
+ * Returns the value of the '<em><b>Elementwise affine</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Elementwise affine</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Elementwise affine</em>' attribute.
+ * @see #setElementwise_affine(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getLayerNorm_Elementwise_affine()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isElementwise_affine();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm#isElementwise_affine <em>Elementwise affine</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Elementwise affine</em>' attribute.
+ * @see #isElementwise_affine()
+ * @generated
+ */
+ void setElementwise_affine(boolean value);
+
+} // LayerNorm
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/LocalResponseNorm.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/LocalResponseNorm.java
new file mode 100644
index 0000000..c97b761
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/LocalResponseNorm.java
@@ -0,0 +1,139 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Local Response Norm</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getSize <em>Size</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getAlpha <em>Alpha</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getBeta <em>Beta</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getK <em>K</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getLocalResponseNorm()
+ * @model
+ * @generated
+ */
+public interface LocalResponseNorm extends Normalization_layers {
+ /**
+ * Returns the value of the '<em><b>Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size</em>' attribute.
+ * @see #setSize(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getLocalResponseNorm_Size()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getSize();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getSize <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Size</em>' attribute.
+ * @see #getSize()
+ * @generated
+ */
+ void setSize(int value);
+
+ /**
+ * Returns the value of the '<em><b>Alpha</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Alpha</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Alpha</em>' attribute.
+ * @see #setAlpha(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getLocalResponseNorm_Alpha()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getAlpha();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getAlpha <em>Alpha</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Alpha</em>' attribute.
+ * @see #getAlpha()
+ * @generated
+ */
+ void setAlpha(double value);
+
+ /**
+ * Returns the value of the '<em><b>Beta</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Beta</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Beta</em>' attribute.
+ * @see #setBeta(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getLocalResponseNorm_Beta()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getBeta();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getBeta <em>Beta</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Beta</em>' attribute.
+ * @see #getBeta()
+ * @generated
+ */
+ void setBeta(double value);
+
+ /**
+ * Returns the value of the '<em><b>K</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>K</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>K</em>' attribute.
+ * @see #setK(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getLocalResponseNorm_K()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getK();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getK <em>K</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>K</em>' attribute.
+ * @see #getK()
+ * @generated
+ */
+ void setK(double value);
+
+} // LocalResponseNorm
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layers.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layers.java
new file mode 100644
index 0000000..fceb021
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layers.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Normalization layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getNormalization_layers()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Normalization_layers extends Model {
+} // Normalization_layers
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layersFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layersFactory.java
new file mode 100644
index 0000000..f723156
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layersFactory.java
@@ -0,0 +1,141 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage
+ * @generated
+ */
+public interface Normalization_layersFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Normalization_layersFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Layer Norm</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Layer Norm</em>'.
+ * @generated
+ */
+ LayerNorm createLayerNorm();
+
+ /**
+ * Returns a new object of class '<em>Local Response Norm</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Local Response Norm</em>'.
+ * @generated
+ */
+ LocalResponseNorm createLocalResponseNorm();
+
+ /**
+ * Returns a new object of class '<em>Normalization layers 11</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Normalization layers 11</em>'.
+ * @generated
+ */
+ Normalization_layers_1_1 createNormalization_layers_1_1();
+
+ /**
+ * Returns a new object of class '<em>Group Norm</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Group Norm</em>'.
+ * @generated
+ */
+ GroupNorm createGroupNorm();
+
+ /**
+ * Returns a new object of class '<em>Batch Norm1d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Batch Norm1d</em>'.
+ * @generated
+ */
+ BatchNorm1d createBatchNorm1d();
+
+ /**
+ * Returns a new object of class '<em>Batch Norm2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Batch Norm2d</em>'.
+ * @generated
+ */
+ BatchNorm2d createBatchNorm2d();
+
+ /**
+ * Returns a new object of class '<em>Batch Norm3d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Batch Norm3d</em>'.
+ * @generated
+ */
+ BatchNorm3d createBatchNorm3d();
+
+ /**
+ * Returns a new object of class '<em>Sync Batch Norm</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Sync Batch Norm</em>'.
+ * @generated
+ */
+ SyncBatchNorm createSyncBatchNorm();
+
+ /**
+ * Returns a new object of class '<em>Instance Norm1d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Instance Norm1d</em>'.
+ * @generated
+ */
+ InstanceNorm1d createInstanceNorm1d();
+
+ /**
+ * Returns a new object of class '<em>Instance Norm2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Instance Norm2d</em>'.
+ * @generated
+ */
+ InstanceNorm2d createInstanceNorm2d();
+
+ /**
+ * Returns a new object of class '<em>Instance Norm3d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Instance Norm3d</em>'.
+ * @generated
+ */
+ InstanceNorm3d createInstanceNorm3d();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Normalization_layersPackage getNormalization_layersPackage();
+
+} //Normalization_layersFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layersPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layersPackage.java
new file mode 100644
index 0000000..6537495
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layersPackage.java
@@ -0,0 +1,2410 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Normalization_layersPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Normalization_layers"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/normalization/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Normalization_layers"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Normalization_layersPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersImpl <em>Normalization layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getNormalization_layers()
+ * @generated
+ */
+ int NORMALIZATION_LAYERS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The number of structural features of the '<em>Normalization layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Normalization layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1Impl <em>Normalization layers 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getNormalization_layers_1()
+ * @generated
+ */
+ int NORMALIZATION_LAYERS_1 = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_1__BASE_CLASS = NORMALIZATION_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_1__NAME = NORMALIZATION_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_1__DATA = NORMALIZATION_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_1__REQUIRES_GRAD = NORMALIZATION_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_1__SUB_MODULE = NORMALIZATION_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_1__OPTIMIZER = NORMALIZATION_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_1__LOSS = NORMALIZATION_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_1__EPS = NORMALIZATION_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Normalization layers 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_1_FEATURE_COUNT = NORMALIZATION_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Normalization layers 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_1_OPERATION_COUNT = NORMALIZATION_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.LayerNormImpl <em>Layer Norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.LayerNormImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getLayerNorm()
+ * @generated
+ */
+ int LAYER_NORM = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_NORM__BASE_CLASS = NORMALIZATION_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_NORM__NAME = NORMALIZATION_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_NORM__DATA = NORMALIZATION_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_NORM__REQUIRES_GRAD = NORMALIZATION_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_NORM__SUB_MODULE = NORMALIZATION_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_NORM__OPTIMIZER = NORMALIZATION_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_NORM__LOSS = NORMALIZATION_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_NORM__EPS = NORMALIZATION_LAYERS_1__EPS;
+
+ /**
+ * The feature id for the '<em><b>Normalized shape</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_NORM__NORMALIZED_SHAPE = NORMALIZATION_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Elementwise affine</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_NORM__ELEMENTWISE_AFFINE = NORMALIZATION_LAYERS_1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Layer Norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_NORM_FEATURE_COUNT = NORMALIZATION_LAYERS_1_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Layer Norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAYER_NORM_OPERATION_COUNT = NORMALIZATION_LAYERS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.LocalResponseNormImpl <em>Local Response Norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.LocalResponseNormImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getLocalResponseNorm()
+ * @generated
+ */
+ int LOCAL_RESPONSE_NORM = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_RESPONSE_NORM__BASE_CLASS = NORMALIZATION_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_RESPONSE_NORM__NAME = NORMALIZATION_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_RESPONSE_NORM__DATA = NORMALIZATION_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_RESPONSE_NORM__REQUIRES_GRAD = NORMALIZATION_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_RESPONSE_NORM__SUB_MODULE = NORMALIZATION_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_RESPONSE_NORM__OPTIMIZER = NORMALIZATION_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_RESPONSE_NORM__LOSS = NORMALIZATION_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_RESPONSE_NORM__SIZE = NORMALIZATION_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Alpha</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_RESPONSE_NORM__ALPHA = NORMALIZATION_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Beta</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_RESPONSE_NORM__BETA = NORMALIZATION_LAYERS_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>K</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_RESPONSE_NORM__K = NORMALIZATION_LAYERS_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Local Response Norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_RESPONSE_NORM_FEATURE_COUNT = NORMALIZATION_LAYERS_FEATURE_COUNT + 4;
+
+ /**
+ * The number of operations of the '<em>Local Response Norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOCAL_RESPONSE_NORM_OPERATION_COUNT = NORMALIZATION_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1_1Impl <em>Normalization layers 11</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getNormalization_layers_1_1()
+ * @generated
+ */
+ int NORMALIZATION_LAYERS_11 = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_11__BASE_CLASS = NORMALIZATION_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_11__NAME = NORMALIZATION_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_11__DATA = NORMALIZATION_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_11__REQUIRES_GRAD = NORMALIZATION_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_11__SUB_MODULE = NORMALIZATION_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_11__OPTIMIZER = NORMALIZATION_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_11__LOSS = NORMALIZATION_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_11__EPS = NORMALIZATION_LAYERS_1__EPS;
+
+ /**
+ * The feature id for the '<em><b>Affine</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_11__AFFINE = NORMALIZATION_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Normalization layers 11</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_11_FEATURE_COUNT = NORMALIZATION_LAYERS_1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Normalization layers 11</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_11_OPERATION_COUNT = NORMALIZATION_LAYERS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1_1_1Impl <em>Normalization layers 111</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1_1_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getNormalization_layers_1_1_1()
+ * @generated
+ */
+ int NORMALIZATION_LAYERS_111 = 5;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_111__BASE_CLASS = NORMALIZATION_LAYERS_11__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_111__NAME = NORMALIZATION_LAYERS_11__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_111__DATA = NORMALIZATION_LAYERS_11__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_111__REQUIRES_GRAD = NORMALIZATION_LAYERS_11__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_111__SUB_MODULE = NORMALIZATION_LAYERS_11__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_111__OPTIMIZER = NORMALIZATION_LAYERS_11__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_111__LOSS = NORMALIZATION_LAYERS_11__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_111__EPS = NORMALIZATION_LAYERS_11__EPS;
+
+ /**
+ * The feature id for the '<em><b>Affine</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_111__AFFINE = NORMALIZATION_LAYERS_11__AFFINE;
+
+ /**
+ * The feature id for the '<em><b>Num features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_111__NUM_FEATURES = NORMALIZATION_LAYERS_11_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Momentum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_111__MOMENTUM = NORMALIZATION_LAYERS_11_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Track running stats</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS = NORMALIZATION_LAYERS_11_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Normalization layers 111</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_111_FEATURE_COUNT = NORMALIZATION_LAYERS_11_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the '<em>Normalization layers 111</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NORMALIZATION_LAYERS_111_OPERATION_COUNT = NORMALIZATION_LAYERS_11_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.GroupNormImpl <em>Group Norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.GroupNormImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getGroupNorm()
+ * @generated
+ */
+ int GROUP_NORM = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GROUP_NORM__BASE_CLASS = NORMALIZATION_LAYERS_11__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GROUP_NORM__NAME = NORMALIZATION_LAYERS_11__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GROUP_NORM__DATA = NORMALIZATION_LAYERS_11__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GROUP_NORM__REQUIRES_GRAD = NORMALIZATION_LAYERS_11__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GROUP_NORM__SUB_MODULE = NORMALIZATION_LAYERS_11__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GROUP_NORM__OPTIMIZER = NORMALIZATION_LAYERS_11__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GROUP_NORM__LOSS = NORMALIZATION_LAYERS_11__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GROUP_NORM__EPS = NORMALIZATION_LAYERS_11__EPS;
+
+ /**
+ * The feature id for the '<em><b>Affine</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GROUP_NORM__AFFINE = NORMALIZATION_LAYERS_11__AFFINE;
+
+ /**
+ * The feature id for the '<em><b>Num groups</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GROUP_NORM__NUM_GROUPS = NORMALIZATION_LAYERS_11_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Num channels</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GROUP_NORM__NUM_CHANNELS = NORMALIZATION_LAYERS_11_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Group Norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GROUP_NORM_FEATURE_COUNT = NORMALIZATION_LAYERS_11_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Group Norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GROUP_NORM_OPERATION_COUNT = NORMALIZATION_LAYERS_11_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.BatchNorm1dImpl <em>Batch Norm1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.BatchNorm1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getBatchNorm1d()
+ * @generated
+ */
+ int BATCH_NORM1D = 7;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM1D__BASE_CLASS = NORMALIZATION_LAYERS_111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM1D__NAME = NORMALIZATION_LAYERS_111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM1D__DATA = NORMALIZATION_LAYERS_111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM1D__REQUIRES_GRAD = NORMALIZATION_LAYERS_111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM1D__SUB_MODULE = NORMALIZATION_LAYERS_111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM1D__OPTIMIZER = NORMALIZATION_LAYERS_111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM1D__LOSS = NORMALIZATION_LAYERS_111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM1D__EPS = NORMALIZATION_LAYERS_111__EPS;
+
+ /**
+ * The feature id for the '<em><b>Affine</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM1D__AFFINE = NORMALIZATION_LAYERS_111__AFFINE;
+
+ /**
+ * The feature id for the '<em><b>Num features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM1D__NUM_FEATURES = NORMALIZATION_LAYERS_111__NUM_FEATURES;
+
+ /**
+ * The feature id for the '<em><b>Momentum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM1D__MOMENTUM = NORMALIZATION_LAYERS_111__MOMENTUM;
+
+ /**
+ * The feature id for the '<em><b>Track running stats</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM1D__TRACK_RUNNING_STATS = NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS;
+
+ /**
+ * The number of structural features of the '<em>Batch Norm1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM1D_FEATURE_COUNT = NORMALIZATION_LAYERS_111_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Batch Norm1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM1D_OPERATION_COUNT = NORMALIZATION_LAYERS_111_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.BatchNorm2dImpl <em>Batch Norm2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.BatchNorm2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getBatchNorm2d()
+ * @generated
+ */
+ int BATCH_NORM2D = 8;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM2D__BASE_CLASS = NORMALIZATION_LAYERS_111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM2D__NAME = NORMALIZATION_LAYERS_111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM2D__DATA = NORMALIZATION_LAYERS_111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM2D__REQUIRES_GRAD = NORMALIZATION_LAYERS_111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM2D__SUB_MODULE = NORMALIZATION_LAYERS_111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM2D__OPTIMIZER = NORMALIZATION_LAYERS_111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM2D__LOSS = NORMALIZATION_LAYERS_111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM2D__EPS = NORMALIZATION_LAYERS_111__EPS;
+
+ /**
+ * The feature id for the '<em><b>Affine</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM2D__AFFINE = NORMALIZATION_LAYERS_111__AFFINE;
+
+ /**
+ * The feature id for the '<em><b>Num features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM2D__NUM_FEATURES = NORMALIZATION_LAYERS_111__NUM_FEATURES;
+
+ /**
+ * The feature id for the '<em><b>Momentum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM2D__MOMENTUM = NORMALIZATION_LAYERS_111__MOMENTUM;
+
+ /**
+ * The feature id for the '<em><b>Track running stats</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM2D__TRACK_RUNNING_STATS = NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS;
+
+ /**
+ * The number of structural features of the '<em>Batch Norm2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM2D_FEATURE_COUNT = NORMALIZATION_LAYERS_111_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Batch Norm2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM2D_OPERATION_COUNT = NORMALIZATION_LAYERS_111_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.BatchNorm3dImpl <em>Batch Norm3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.BatchNorm3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getBatchNorm3d()
+ * @generated
+ */
+ int BATCH_NORM3D = 9;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM3D__BASE_CLASS = NORMALIZATION_LAYERS_111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM3D__NAME = NORMALIZATION_LAYERS_111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM3D__DATA = NORMALIZATION_LAYERS_111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM3D__REQUIRES_GRAD = NORMALIZATION_LAYERS_111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM3D__SUB_MODULE = NORMALIZATION_LAYERS_111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM3D__OPTIMIZER = NORMALIZATION_LAYERS_111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM3D__LOSS = NORMALIZATION_LAYERS_111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM3D__EPS = NORMALIZATION_LAYERS_111__EPS;
+
+ /**
+ * The feature id for the '<em><b>Affine</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM3D__AFFINE = NORMALIZATION_LAYERS_111__AFFINE;
+
+ /**
+ * The feature id for the '<em><b>Num features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM3D__NUM_FEATURES = NORMALIZATION_LAYERS_111__NUM_FEATURES;
+
+ /**
+ * The feature id for the '<em><b>Momentum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM3D__MOMENTUM = NORMALIZATION_LAYERS_111__MOMENTUM;
+
+ /**
+ * The feature id for the '<em><b>Track running stats</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM3D__TRACK_RUNNING_STATS = NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS;
+
+ /**
+ * The number of structural features of the '<em>Batch Norm3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM3D_FEATURE_COUNT = NORMALIZATION_LAYERS_111_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Batch Norm3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BATCH_NORM3D_OPERATION_COUNT = NORMALIZATION_LAYERS_111_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.SyncBatchNormImpl <em>Sync Batch Norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.SyncBatchNormImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getSyncBatchNorm()
+ * @generated
+ */
+ int SYNC_BATCH_NORM = 10;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM__BASE_CLASS = NORMALIZATION_LAYERS_111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM__NAME = NORMALIZATION_LAYERS_111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM__DATA = NORMALIZATION_LAYERS_111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM__REQUIRES_GRAD = NORMALIZATION_LAYERS_111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM__SUB_MODULE = NORMALIZATION_LAYERS_111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM__OPTIMIZER = NORMALIZATION_LAYERS_111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM__LOSS = NORMALIZATION_LAYERS_111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM__EPS = NORMALIZATION_LAYERS_111__EPS;
+
+ /**
+ * The feature id for the '<em><b>Affine</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM__AFFINE = NORMALIZATION_LAYERS_111__AFFINE;
+
+ /**
+ * The feature id for the '<em><b>Num features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM__NUM_FEATURES = NORMALIZATION_LAYERS_111__NUM_FEATURES;
+
+ /**
+ * The feature id for the '<em><b>Momentum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM__MOMENTUM = NORMALIZATION_LAYERS_111__MOMENTUM;
+
+ /**
+ * The feature id for the '<em><b>Track running stats</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM__TRACK_RUNNING_STATS = NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS;
+
+ /**
+ * The feature id for the '<em><b>Process group</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM__PROCESS_GROUP = NORMALIZATION_LAYERS_111_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Sync Batch Norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM_FEATURE_COUNT = NORMALIZATION_LAYERS_111_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Sync Batch Norm</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SYNC_BATCH_NORM_OPERATION_COUNT = NORMALIZATION_LAYERS_111_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.InstanceNorm1dImpl <em>Instance Norm1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.InstanceNorm1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getInstanceNorm1d()
+ * @generated
+ */
+ int INSTANCE_NORM1D = 11;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM1D__BASE_CLASS = NORMALIZATION_LAYERS_111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM1D__NAME = NORMALIZATION_LAYERS_111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM1D__DATA = NORMALIZATION_LAYERS_111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM1D__REQUIRES_GRAD = NORMALIZATION_LAYERS_111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM1D__SUB_MODULE = NORMALIZATION_LAYERS_111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM1D__OPTIMIZER = NORMALIZATION_LAYERS_111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM1D__LOSS = NORMALIZATION_LAYERS_111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM1D__EPS = NORMALIZATION_LAYERS_111__EPS;
+
+ /**
+ * The feature id for the '<em><b>Affine</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM1D__AFFINE = NORMALIZATION_LAYERS_111__AFFINE;
+
+ /**
+ * The feature id for the '<em><b>Num features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM1D__NUM_FEATURES = NORMALIZATION_LAYERS_111__NUM_FEATURES;
+
+ /**
+ * The feature id for the '<em><b>Momentum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM1D__MOMENTUM = NORMALIZATION_LAYERS_111__MOMENTUM;
+
+ /**
+ * The feature id for the '<em><b>Track running stats</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM1D__TRACK_RUNNING_STATS = NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS;
+
+ /**
+ * The number of structural features of the '<em>Instance Norm1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM1D_FEATURE_COUNT = NORMALIZATION_LAYERS_111_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Instance Norm1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM1D_OPERATION_COUNT = NORMALIZATION_LAYERS_111_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.InstanceNorm2dImpl <em>Instance Norm2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.InstanceNorm2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getInstanceNorm2d()
+ * @generated
+ */
+ int INSTANCE_NORM2D = 12;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM2D__BASE_CLASS = NORMALIZATION_LAYERS_111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM2D__NAME = NORMALIZATION_LAYERS_111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM2D__DATA = NORMALIZATION_LAYERS_111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM2D__REQUIRES_GRAD = NORMALIZATION_LAYERS_111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM2D__SUB_MODULE = NORMALIZATION_LAYERS_111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM2D__OPTIMIZER = NORMALIZATION_LAYERS_111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM2D__LOSS = NORMALIZATION_LAYERS_111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM2D__EPS = NORMALIZATION_LAYERS_111__EPS;
+
+ /**
+ * The feature id for the '<em><b>Affine</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM2D__AFFINE = NORMALIZATION_LAYERS_111__AFFINE;
+
+ /**
+ * The feature id for the '<em><b>Num features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM2D__NUM_FEATURES = NORMALIZATION_LAYERS_111__NUM_FEATURES;
+
+ /**
+ * The feature id for the '<em><b>Momentum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM2D__MOMENTUM = NORMALIZATION_LAYERS_111__MOMENTUM;
+
+ /**
+ * The feature id for the '<em><b>Track running stats</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM2D__TRACK_RUNNING_STATS = NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS;
+
+ /**
+ * The number of structural features of the '<em>Instance Norm2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM2D_FEATURE_COUNT = NORMALIZATION_LAYERS_111_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Instance Norm2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM2D_OPERATION_COUNT = NORMALIZATION_LAYERS_111_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.InstanceNorm3dImpl <em>Instance Norm3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.InstanceNorm3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getInstanceNorm3d()
+ * @generated
+ */
+ int INSTANCE_NORM3D = 13;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM3D__BASE_CLASS = NORMALIZATION_LAYERS_111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM3D__NAME = NORMALIZATION_LAYERS_111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM3D__DATA = NORMALIZATION_LAYERS_111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM3D__REQUIRES_GRAD = NORMALIZATION_LAYERS_111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM3D__SUB_MODULE = NORMALIZATION_LAYERS_111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM3D__OPTIMIZER = NORMALIZATION_LAYERS_111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM3D__LOSS = NORMALIZATION_LAYERS_111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM3D__EPS = NORMALIZATION_LAYERS_111__EPS;
+
+ /**
+ * The feature id for the '<em><b>Affine</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM3D__AFFINE = NORMALIZATION_LAYERS_111__AFFINE;
+
+ /**
+ * The feature id for the '<em><b>Num features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM3D__NUM_FEATURES = NORMALIZATION_LAYERS_111__NUM_FEATURES;
+
+ /**
+ * The feature id for the '<em><b>Momentum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM3D__MOMENTUM = NORMALIZATION_LAYERS_111__MOMENTUM;
+
+ /**
+ * The feature id for the '<em><b>Track running stats</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM3D__TRACK_RUNNING_STATS = NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS;
+
+ /**
+ * The number of structural features of the '<em>Instance Norm3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM3D_FEATURE_COUNT = NORMALIZATION_LAYERS_111_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Instance Norm3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int INSTANCE_NORM3D_OPERATION_COUNT = NORMALIZATION_LAYERS_111_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers <em>Normalization layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Normalization layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers
+ * @generated
+ */
+ EClass getNormalization_layers();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1 <em>Normalization layers 1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Normalization layers 1</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1
+ * @generated
+ */
+ EClass getNormalization_layers_1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1#getEps <em>Eps</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Eps</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1#getEps()
+ * @see #getNormalization_layers_1()
+ * @generated
+ */
+ EAttribute getNormalization_layers_1_Eps();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm <em>Layer Norm</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Layer Norm</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm
+ * @generated
+ */
+ EClass getLayerNorm();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm#getNormalized_shape <em>Normalized shape</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Normalized shape</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm#getNormalized_shape()
+ * @see #getLayerNorm()
+ * @generated
+ */
+ EAttribute getLayerNorm_Normalized_shape();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm#isElementwise_affine <em>Elementwise affine</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Elementwise affine</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm#isElementwise_affine()
+ * @see #getLayerNorm()
+ * @generated
+ */
+ EAttribute getLayerNorm_Elementwise_affine();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm <em>Local Response Norm</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Local Response Norm</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm
+ * @generated
+ */
+ EClass getLocalResponseNorm();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getSize <em>Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Size</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getSize()
+ * @see #getLocalResponseNorm()
+ * @generated
+ */
+ EAttribute getLocalResponseNorm_Size();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getAlpha <em>Alpha</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Alpha</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getAlpha()
+ * @see #getLocalResponseNorm()
+ * @generated
+ */
+ EAttribute getLocalResponseNorm_Alpha();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getBeta <em>Beta</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Beta</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getBeta()
+ * @see #getLocalResponseNorm()
+ * @generated
+ */
+ EAttribute getLocalResponseNorm_Beta();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getK <em>K</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>K</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm#getK()
+ * @see #getLocalResponseNorm()
+ * @generated
+ */
+ EAttribute getLocalResponseNorm_K();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1 <em>Normalization layers 11</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Normalization layers 11</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1
+ * @generated
+ */
+ EClass getNormalization_layers_1_1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1#isAffine <em>Affine</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Affine</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1#isAffine()
+ * @see #getNormalization_layers_1_1()
+ * @generated
+ */
+ EAttribute getNormalization_layers_1_1_Affine();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1 <em>Normalization layers 111</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Normalization layers 111</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1
+ * @generated
+ */
+ EClass getNormalization_layers_1_1_1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1#getNum_features <em>Num features</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Num features</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1#getNum_features()
+ * @see #getNormalization_layers_1_1_1()
+ * @generated
+ */
+ EAttribute getNormalization_layers_1_1_1_Num_features();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1#getMomentum <em>Momentum</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Momentum</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1#getMomentum()
+ * @see #getNormalization_layers_1_1_1()
+ * @generated
+ */
+ EAttribute getNormalization_layers_1_1_1_Momentum();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1#isTrack_running_stats <em>Track running stats</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Track running stats</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1#isTrack_running_stats()
+ * @see #getNormalization_layers_1_1_1()
+ * @generated
+ */
+ EAttribute getNormalization_layers_1_1_1_Track_running_stats();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.GroupNorm <em>Group Norm</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Group Norm</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.GroupNorm
+ * @generated
+ */
+ EClass getGroupNorm();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.GroupNorm#getNum_groups <em>Num groups</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Num groups</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.GroupNorm#getNum_groups()
+ * @see #getGroupNorm()
+ * @generated
+ */
+ EAttribute getGroupNorm_Num_groups();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.GroupNorm#getNum_channels <em>Num channels</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Num channels</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.GroupNorm#getNum_channels()
+ * @see #getGroupNorm()
+ * @generated
+ */
+ EAttribute getGroupNorm_Num_channels();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm1d <em>Batch Norm1d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Batch Norm1d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm1d
+ * @generated
+ */
+ EClass getBatchNorm1d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm2d <em>Batch Norm2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Batch Norm2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm2d
+ * @generated
+ */
+ EClass getBatchNorm2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm3d <em>Batch Norm3d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Batch Norm3d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm3d
+ * @generated
+ */
+ EClass getBatchNorm3d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.SyncBatchNorm <em>Sync Batch Norm</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sync Batch Norm</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.SyncBatchNorm
+ * @generated
+ */
+ EClass getSyncBatchNorm();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.SyncBatchNorm#getProcess_group <em>Process group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Process group</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.SyncBatchNorm#getProcess_group()
+ * @see #getSyncBatchNorm()
+ * @generated
+ */
+ EAttribute getSyncBatchNorm_Process_group();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm1d <em>Instance Norm1d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Instance Norm1d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm1d
+ * @generated
+ */
+ EClass getInstanceNorm1d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm2d <em>Instance Norm2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Instance Norm2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm2d
+ * @generated
+ */
+ EClass getInstanceNorm2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm3d <em>Instance Norm3d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Instance Norm3d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm3d
+ * @generated
+ */
+ EClass getInstanceNorm3d();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Normalization_layersFactory getNormalization_layersFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersImpl <em>Normalization layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getNormalization_layers()
+ * @generated
+ */
+ EClass NORMALIZATION_LAYERS = eINSTANCE.getNormalization_layers();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1Impl <em>Normalization layers 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getNormalization_layers_1()
+ * @generated
+ */
+ EClass NORMALIZATION_LAYERS_1 = eINSTANCE.getNormalization_layers_1();
+
+ /**
+ * The meta object literal for the '<em><b>Eps</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NORMALIZATION_LAYERS_1__EPS = eINSTANCE.getNormalization_layers_1_Eps();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.LayerNormImpl <em>Layer Norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.LayerNormImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getLayerNorm()
+ * @generated
+ */
+ EClass LAYER_NORM = eINSTANCE.getLayerNorm();
+
+ /**
+ * The meta object literal for the '<em><b>Normalized shape</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LAYER_NORM__NORMALIZED_SHAPE = eINSTANCE.getLayerNorm_Normalized_shape();
+
+ /**
+ * The meta object literal for the '<em><b>Elementwise affine</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LAYER_NORM__ELEMENTWISE_AFFINE = eINSTANCE.getLayerNorm_Elementwise_affine();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.LocalResponseNormImpl <em>Local Response Norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.LocalResponseNormImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getLocalResponseNorm()
+ * @generated
+ */
+ EClass LOCAL_RESPONSE_NORM = eINSTANCE.getLocalResponseNorm();
+
+ /**
+ * The meta object literal for the '<em><b>Size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOCAL_RESPONSE_NORM__SIZE = eINSTANCE.getLocalResponseNorm_Size();
+
+ /**
+ * The meta object literal for the '<em><b>Alpha</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOCAL_RESPONSE_NORM__ALPHA = eINSTANCE.getLocalResponseNorm_Alpha();
+
+ /**
+ * The meta object literal for the '<em><b>Beta</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOCAL_RESPONSE_NORM__BETA = eINSTANCE.getLocalResponseNorm_Beta();
+
+ /**
+ * The meta object literal for the '<em><b>K</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LOCAL_RESPONSE_NORM__K = eINSTANCE.getLocalResponseNorm_K();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1_1Impl <em>Normalization layers 11</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getNormalization_layers_1_1()
+ * @generated
+ */
+ EClass NORMALIZATION_LAYERS_11 = eINSTANCE.getNormalization_layers_1_1();
+
+ /**
+ * The meta object literal for the '<em><b>Affine</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NORMALIZATION_LAYERS_11__AFFINE = eINSTANCE.getNormalization_layers_1_1_Affine();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1_1_1Impl <em>Normalization layers 111</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1_1_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getNormalization_layers_1_1_1()
+ * @generated
+ */
+ EClass NORMALIZATION_LAYERS_111 = eINSTANCE.getNormalization_layers_1_1_1();
+
+ /**
+ * The meta object literal for the '<em><b>Num features</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NORMALIZATION_LAYERS_111__NUM_FEATURES = eINSTANCE.getNormalization_layers_1_1_1_Num_features();
+
+ /**
+ * The meta object literal for the '<em><b>Momentum</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NORMALIZATION_LAYERS_111__MOMENTUM = eINSTANCE.getNormalization_layers_1_1_1_Momentum();
+
+ /**
+ * The meta object literal for the '<em><b>Track running stats</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS = eINSTANCE.getNormalization_layers_1_1_1_Track_running_stats();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.GroupNormImpl <em>Group Norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.GroupNormImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getGroupNorm()
+ * @generated
+ */
+ EClass GROUP_NORM = eINSTANCE.getGroupNorm();
+
+ /**
+ * The meta object literal for the '<em><b>Num groups</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute GROUP_NORM__NUM_GROUPS = eINSTANCE.getGroupNorm_Num_groups();
+
+ /**
+ * The meta object literal for the '<em><b>Num channels</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute GROUP_NORM__NUM_CHANNELS = eINSTANCE.getGroupNorm_Num_channels();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.BatchNorm1dImpl <em>Batch Norm1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.BatchNorm1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getBatchNorm1d()
+ * @generated
+ */
+ EClass BATCH_NORM1D = eINSTANCE.getBatchNorm1d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.BatchNorm2dImpl <em>Batch Norm2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.BatchNorm2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getBatchNorm2d()
+ * @generated
+ */
+ EClass BATCH_NORM2D = eINSTANCE.getBatchNorm2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.BatchNorm3dImpl <em>Batch Norm3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.BatchNorm3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getBatchNorm3d()
+ * @generated
+ */
+ EClass BATCH_NORM3D = eINSTANCE.getBatchNorm3d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.SyncBatchNormImpl <em>Sync Batch Norm</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.SyncBatchNormImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getSyncBatchNorm()
+ * @generated
+ */
+ EClass SYNC_BATCH_NORM = eINSTANCE.getSyncBatchNorm();
+
+ /**
+ * The meta object literal for the '<em><b>Process group</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SYNC_BATCH_NORM__PROCESS_GROUP = eINSTANCE.getSyncBatchNorm_Process_group();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.InstanceNorm1dImpl <em>Instance Norm1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.InstanceNorm1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getInstanceNorm1d()
+ * @generated
+ */
+ EClass INSTANCE_NORM1D = eINSTANCE.getInstanceNorm1d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.InstanceNorm2dImpl <em>Instance Norm2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.InstanceNorm2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getInstanceNorm2d()
+ * @generated
+ */
+ EClass INSTANCE_NORM2D = eINSTANCE.getInstanceNorm2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.InstanceNorm3dImpl <em>Instance Norm3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.InstanceNorm3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl#getInstanceNorm3d()
+ * @generated
+ */
+ EClass INSTANCE_NORM3D = eINSTANCE.getInstanceNorm3d();
+
+ }
+
+} //Normalization_layersPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layers_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layers_1.java
new file mode 100644
index 0000000..acbed68
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layers_1.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Normalization layers 1</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1#getEps <em>Eps</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getNormalization_layers_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Normalization_layers_1 extends Normalization_layers {
+ /**
+ * Returns the value of the '<em><b>Eps</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Eps</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Eps</em>' attribute.
+ * @see #setEps(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getNormalization_layers_1_Eps()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getEps();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1#getEps <em>Eps</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Eps</em>' attribute.
+ * @see #getEps()
+ * @generated
+ */
+ void setEps(double value);
+
+} // Normalization_layers_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layers_1_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layers_1_1.java
new file mode 100644
index 0000000..abb248f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layers_1_1.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Normalization layers 11</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1#isAffine <em>Affine</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getNormalization_layers_1_1()
+ * @model
+ * @generated
+ */
+public interface Normalization_layers_1_1 extends Normalization_layers_1 {
+ /**
+ * Returns the value of the '<em><b>Affine</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Affine</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Affine</em>' attribute.
+ * @see #setAffine(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getNormalization_layers_1_1_Affine()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isAffine();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1#isAffine <em>Affine</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Affine</em>' attribute.
+ * @see #isAffine()
+ * @generated
+ */
+ void setAffine(boolean value);
+
+} // Normalization_layers_1_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layers_1_1_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layers_1_1_1.java
new file mode 100644
index 0000000..c17194d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/Normalization_layers_1_1_1.java
@@ -0,0 +1,113 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Normalization layers 111</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1#getNum_features <em>Num features</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1#getMomentum <em>Momentum</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1#isTrack_running_stats <em>Track running stats</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getNormalization_layers_1_1_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Normalization_layers_1_1_1 extends Normalization_layers_1_1 {
+ /**
+ * Returns the value of the '<em><b>Num features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Num features</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Num features</em>' attribute.
+ * @see #setNum_features(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getNormalization_layers_1_1_1_Num_features()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getNum_features();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1#getNum_features <em>Num features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Num features</em>' attribute.
+ * @see #getNum_features()
+ * @generated
+ */
+ void setNum_features(int value);
+
+ /**
+ * Returns the value of the '<em><b>Momentum</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Momentum</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Momentum</em>' attribute.
+ * @see #setMomentum(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getNormalization_layers_1_1_1_Momentum()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getMomentum();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1#getMomentum <em>Momentum</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Momentum</em>' attribute.
+ * @see #getMomentum()
+ * @generated
+ */
+ void setMomentum(double value);
+
+ /**
+ * Returns the value of the '<em><b>Track running stats</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Track running stats</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Track running stats</em>' attribute.
+ * @see #setTrack_running_stats(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getNormalization_layers_1_1_1_Track_running_stats()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='track_running_stats '"
+ * @generated
+ */
+ boolean isTrack_running_stats();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1#isTrack_running_stats <em>Track running stats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Track running stats</em>' attribute.
+ * @see #isTrack_running_stats()
+ * @generated
+ */
+ void setTrack_running_stats(boolean value);
+
+} // Normalization_layers_1_1_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/SyncBatchNorm.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/SyncBatchNorm.java
new file mode 100644
index 0000000..f16b3ea
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/SyncBatchNorm.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sync Batch Norm</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.SyncBatchNorm#getProcess_group <em>Process group</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getSyncBatchNorm()
+ * @model
+ * @generated
+ */
+public interface SyncBatchNorm extends Normalization_layers_1_1_1 {
+ /**
+ * Returns the value of the '<em><b>Process group</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Process group</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Process group</em>' attribute.
+ * @see #setProcess_group(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#getSyncBatchNorm_Process_group()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='process_group '"
+ * @generated
+ */
+ int getProcess_group();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.SyncBatchNorm#getProcess_group <em>Process group</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Process group</em>' attribute.
+ * @see #getProcess_group()
+ * @generated
+ */
+ void setProcess_group(int value);
+
+} // SyncBatchNorm
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/BatchNorm1dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/BatchNorm1dImpl.java
new file mode 100644
index 0000000..d0d856b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/BatchNorm1dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Batch Norm1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class BatchNorm1dImpl extends Normalization_layers_1_1_1Impl implements BatchNorm1d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BatchNorm1dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Normalization_layersPackage.Literals.BATCH_NORM1D;
+ }
+
+} //BatchNorm1dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/BatchNorm2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/BatchNorm2dImpl.java
new file mode 100644
index 0000000..22d357b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/BatchNorm2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Batch Norm2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class BatchNorm2dImpl extends Normalization_layers_1_1_1Impl implements BatchNorm2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BatchNorm2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Normalization_layersPackage.Literals.BATCH_NORM2D;
+ }
+
+} //BatchNorm2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/BatchNorm3dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/BatchNorm3dImpl.java
new file mode 100644
index 0000000..2269d0e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/BatchNorm3dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Batch Norm3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class BatchNorm3dImpl extends Normalization_layers_1_1_1Impl implements BatchNorm3d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BatchNorm3dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Normalization_layersPackage.Literals.BATCH_NORM3D;
+ }
+
+} //BatchNorm3dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/GroupNormImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/GroupNormImpl.java
new file mode 100644
index 0000000..859aa9e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/GroupNormImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.GroupNorm;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Group Norm</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.GroupNormImpl#getNum_groups <em>Num groups</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.GroupNormImpl#getNum_channels <em>Num channels</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class GroupNormImpl extends Normalization_layers_1_1Impl implements GroupNorm {
+ /**
+ * The default value of the '{@link #getNum_groups() <em>Num groups</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_groups()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUM_GROUPS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNum_groups() <em>Num groups</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_groups()
+ * @generated
+ * @ordered
+ */
+ protected int num_groups = NUM_GROUPS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNum_channels() <em>Num channels</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_channels()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUM_CHANNELS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNum_channels() <em>Num channels</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_channels()
+ * @generated
+ * @ordered
+ */
+ protected int num_channels = NUM_CHANNELS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GroupNormImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Normalization_layersPackage.Literals.GROUP_NORM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getNum_groups() {
+ return num_groups;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNum_groups(int newNum_groups) {
+ int oldNum_groups = num_groups;
+ num_groups = newNum_groups;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Normalization_layersPackage.GROUP_NORM__NUM_GROUPS, oldNum_groups, num_groups));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getNum_channels() {
+ return num_channels;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNum_channels(int newNum_channels) {
+ int oldNum_channels = num_channels;
+ num_channels = newNum_channels;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Normalization_layersPackage.GROUP_NORM__NUM_CHANNELS, oldNum_channels, num_channels));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Normalization_layersPackage.GROUP_NORM__NUM_GROUPS:
+ return getNum_groups();
+ case Normalization_layersPackage.GROUP_NORM__NUM_CHANNELS:
+ return getNum_channels();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Normalization_layersPackage.GROUP_NORM__NUM_GROUPS:
+ setNum_groups((Integer)newValue);
+ return;
+ case Normalization_layersPackage.GROUP_NORM__NUM_CHANNELS:
+ setNum_channels((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Normalization_layersPackage.GROUP_NORM__NUM_GROUPS:
+ setNum_groups(NUM_GROUPS_EDEFAULT);
+ return;
+ case Normalization_layersPackage.GROUP_NORM__NUM_CHANNELS:
+ setNum_channels(NUM_CHANNELS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Normalization_layersPackage.GROUP_NORM__NUM_GROUPS:
+ return num_groups != NUM_GROUPS_EDEFAULT;
+ case Normalization_layersPackage.GROUP_NORM__NUM_CHANNELS:
+ return num_channels != NUM_CHANNELS_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (num_groups: "); //$NON-NLS-1$
+ result.append(num_groups);
+ result.append(", num_channels: "); //$NON-NLS-1$
+ result.append(num_channels);
+ result.append(')');
+ return result.toString();
+ }
+
+} //GroupNormImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/InstanceNorm1dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/InstanceNorm1dImpl.java
new file mode 100644
index 0000000..5e1be3a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/InstanceNorm1dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Instance Norm1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class InstanceNorm1dImpl extends Normalization_layers_1_1_1Impl implements InstanceNorm1d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InstanceNorm1dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Normalization_layersPackage.Literals.INSTANCE_NORM1D;
+ }
+
+} //InstanceNorm1dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/InstanceNorm2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/InstanceNorm2dImpl.java
new file mode 100644
index 0000000..656a8b5
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/InstanceNorm2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Instance Norm2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class InstanceNorm2dImpl extends Normalization_layers_1_1_1Impl implements InstanceNorm2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InstanceNorm2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Normalization_layersPackage.Literals.INSTANCE_NORM2D;
+ }
+
+} //InstanceNorm2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/InstanceNorm3dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/InstanceNorm3dImpl.java
new file mode 100644
index 0000000..3c52981
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/InstanceNorm3dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Instance Norm3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class InstanceNorm3dImpl extends Normalization_layers_1_1_1Impl implements InstanceNorm3d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InstanceNorm3dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Normalization_layersPackage.Literals.INSTANCE_NORM3D;
+ }
+
+} //InstanceNorm3dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/LayerNormImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/LayerNormImpl.java
new file mode 100644
index 0000000..a0b5555
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/LayerNormImpl.java
@@ -0,0 +1,217 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Layer Norm</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.LayerNormImpl#getNormalized_shape <em>Normalized shape</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.LayerNormImpl#isElementwise_affine <em>Elementwise affine</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LayerNormImpl extends Normalization_layers_1Impl implements LayerNorm {
+ /**
+ * The cached value of the '{@link #getNormalized_shape() <em>Normalized shape</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNormalized_shape()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> normalized_shape;
+
+ /**
+ * The default value of the '{@link #isElementwise_affine() <em>Elementwise affine</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isElementwise_affine()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ELEMENTWISE_AFFINE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isElementwise_affine() <em>Elementwise affine</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isElementwise_affine()
+ * @generated
+ * @ordered
+ */
+ protected boolean elementwise_affine = ELEMENTWISE_AFFINE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LayerNormImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Normalization_layersPackage.Literals.LAYER_NORM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getNormalized_shape() {
+ if (normalized_shape == null) {
+ normalized_shape = new EDataTypeUniqueEList<Integer>(Integer.class, this, Normalization_layersPackage.LAYER_NORM__NORMALIZED_SHAPE);
+ }
+ return normalized_shape;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isElementwise_affine() {
+ return elementwise_affine;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setElementwise_affine(boolean newElementwise_affine) {
+ boolean oldElementwise_affine = elementwise_affine;
+ elementwise_affine = newElementwise_affine;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Normalization_layersPackage.LAYER_NORM__ELEMENTWISE_AFFINE, oldElementwise_affine, elementwise_affine));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Normalization_layersPackage.LAYER_NORM__NORMALIZED_SHAPE:
+ return getNormalized_shape();
+ case Normalization_layersPackage.LAYER_NORM__ELEMENTWISE_AFFINE:
+ return isElementwise_affine();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Normalization_layersPackage.LAYER_NORM__NORMALIZED_SHAPE:
+ getNormalized_shape().clear();
+ getNormalized_shape().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case Normalization_layersPackage.LAYER_NORM__ELEMENTWISE_AFFINE:
+ setElementwise_affine((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Normalization_layersPackage.LAYER_NORM__NORMALIZED_SHAPE:
+ getNormalized_shape().clear();
+ return;
+ case Normalization_layersPackage.LAYER_NORM__ELEMENTWISE_AFFINE:
+ setElementwise_affine(ELEMENTWISE_AFFINE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Normalization_layersPackage.LAYER_NORM__NORMALIZED_SHAPE:
+ return normalized_shape != null && !normalized_shape.isEmpty();
+ case Normalization_layersPackage.LAYER_NORM__ELEMENTWISE_AFFINE:
+ return elementwise_affine != ELEMENTWISE_AFFINE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (normalized_shape: "); //$NON-NLS-1$
+ result.append(normalized_shape);
+ result.append(", elementwise_affine: "); //$NON-NLS-1$
+ result.append(elementwise_affine);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LayerNormImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/LocalResponseNormImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/LocalResponseNormImpl.java
new file mode 100644
index 0000000..12d3b9e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/LocalResponseNormImpl.java
@@ -0,0 +1,341 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Local Response Norm</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.LocalResponseNormImpl#getSize <em>Size</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.LocalResponseNormImpl#getAlpha <em>Alpha</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.LocalResponseNormImpl#getBeta <em>Beta</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.LocalResponseNormImpl#getK <em>K</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class LocalResponseNormImpl extends Normalization_layersImpl implements LocalResponseNorm {
+ /**
+ * The default value of the '{@link #getSize() <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected static final int SIZE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getSize() <em>Size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected int size = SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAlpha() <em>Alpha</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAlpha()
+ * @generated
+ * @ordered
+ */
+ protected static final double ALPHA_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getAlpha() <em>Alpha</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAlpha()
+ * @generated
+ * @ordered
+ */
+ protected double alpha = ALPHA_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getBeta() <em>Beta</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBeta()
+ * @generated
+ * @ordered
+ */
+ protected static final double BETA_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getBeta() <em>Beta</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBeta()
+ * @generated
+ * @ordered
+ */
+ protected double beta = BETA_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getK() <em>K</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getK()
+ * @generated
+ * @ordered
+ */
+ protected static final double K_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getK() <em>K</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getK()
+ * @generated
+ * @ordered
+ */
+ protected double k = K_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LocalResponseNormImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Normalization_layersPackage.Literals.LOCAL_RESPONSE_NORM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getSize() {
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSize(int newSize) {
+ int oldSize = size;
+ size = newSize;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Normalization_layersPackage.LOCAL_RESPONSE_NORM__SIZE, oldSize, size));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getAlpha() {
+ return alpha;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setAlpha(double newAlpha) {
+ double oldAlpha = alpha;
+ alpha = newAlpha;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Normalization_layersPackage.LOCAL_RESPONSE_NORM__ALPHA, oldAlpha, alpha));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getBeta() {
+ return beta;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBeta(double newBeta) {
+ double oldBeta = beta;
+ beta = newBeta;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Normalization_layersPackage.LOCAL_RESPONSE_NORM__BETA, oldBeta, beta));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getK() {
+ return k;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setK(double newK) {
+ double oldK = k;
+ k = newK;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Normalization_layersPackage.LOCAL_RESPONSE_NORM__K, oldK, k));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__SIZE:
+ return getSize();
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__ALPHA:
+ return getAlpha();
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__BETA:
+ return getBeta();
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__K:
+ return getK();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__SIZE:
+ setSize((Integer)newValue);
+ return;
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__ALPHA:
+ setAlpha((Double)newValue);
+ return;
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__BETA:
+ setBeta((Double)newValue);
+ return;
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__K:
+ setK((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__SIZE:
+ setSize(SIZE_EDEFAULT);
+ return;
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__ALPHA:
+ setAlpha(ALPHA_EDEFAULT);
+ return;
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__BETA:
+ setBeta(BETA_EDEFAULT);
+ return;
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__K:
+ setK(K_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__SIZE:
+ return size != SIZE_EDEFAULT;
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__ALPHA:
+ return alpha != ALPHA_EDEFAULT;
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__BETA:
+ return beta != BETA_EDEFAULT;
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM__K:
+ return k != K_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (size: "); //$NON-NLS-1$
+ result.append(size);
+ result.append(", alpha: "); //$NON-NLS-1$
+ result.append(alpha);
+ result.append(", beta: "); //$NON-NLS-1$
+ result.append(beta);
+ result.append(", k: "); //$NON-NLS-1$
+ result.append(k);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LocalResponseNormImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layersFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layersFactoryImpl.java
new file mode 100644
index 0000000..fd7b2ff
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layersFactoryImpl.java
@@ -0,0 +1,226 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Normalization_layersFactoryImpl extends EFactoryImpl implements Normalization_layersFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Normalization_layersFactory init() {
+ try {
+ Normalization_layersFactory theNormalization_layersFactory = (Normalization_layersFactory)EPackage.Registry.INSTANCE.getEFactory(Normalization_layersPackage.eNS_URI);
+ if (theNormalization_layersFactory != null) {
+ return theNormalization_layersFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Normalization_layersFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Normalization_layersFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Normalization_layersPackage.LAYER_NORM: return createLayerNorm();
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM: return createLocalResponseNorm();
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_11: return createNormalization_layers_1_1();
+ case Normalization_layersPackage.GROUP_NORM: return createGroupNorm();
+ case Normalization_layersPackage.BATCH_NORM1D: return createBatchNorm1d();
+ case Normalization_layersPackage.BATCH_NORM2D: return createBatchNorm2d();
+ case Normalization_layersPackage.BATCH_NORM3D: return createBatchNorm3d();
+ case Normalization_layersPackage.SYNC_BATCH_NORM: return createSyncBatchNorm();
+ case Normalization_layersPackage.INSTANCE_NORM1D: return createInstanceNorm1d();
+ case Normalization_layersPackage.INSTANCE_NORM2D: return createInstanceNorm2d();
+ case Normalization_layersPackage.INSTANCE_NORM3D: return createInstanceNorm3d();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public LayerNorm createLayerNorm() {
+ LayerNormImpl layerNorm = new LayerNormImpl();
+ return layerNorm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public LocalResponseNorm createLocalResponseNorm() {
+ LocalResponseNormImpl localResponseNorm = new LocalResponseNormImpl();
+ return localResponseNorm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Normalization_layers_1_1 createNormalization_layers_1_1() {
+ Normalization_layers_1_1Impl normalization_layers_1_1 = new Normalization_layers_1_1Impl();
+ return normalization_layers_1_1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public GroupNorm createGroupNorm() {
+ GroupNormImpl groupNorm = new GroupNormImpl();
+ return groupNorm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public BatchNorm1d createBatchNorm1d() {
+ BatchNorm1dImpl batchNorm1d = new BatchNorm1dImpl();
+ return batchNorm1d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public BatchNorm2d createBatchNorm2d() {
+ BatchNorm2dImpl batchNorm2d = new BatchNorm2dImpl();
+ return batchNorm2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public BatchNorm3d createBatchNorm3d() {
+ BatchNorm3dImpl batchNorm3d = new BatchNorm3dImpl();
+ return batchNorm3d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public SyncBatchNorm createSyncBatchNorm() {
+ SyncBatchNormImpl syncBatchNorm = new SyncBatchNormImpl();
+ return syncBatchNorm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InstanceNorm1d createInstanceNorm1d() {
+ InstanceNorm1dImpl instanceNorm1d = new InstanceNorm1dImpl();
+ return instanceNorm1d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InstanceNorm2d createInstanceNorm2d() {
+ InstanceNorm2dImpl instanceNorm2d = new InstanceNorm2dImpl();
+ return instanceNorm2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public InstanceNorm3d createInstanceNorm3d() {
+ InstanceNorm3dImpl instanceNorm3d = new InstanceNorm3dImpl();
+ return instanceNorm3d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Normalization_layersPackage getNormalization_layersPackage() {
+ return (Normalization_layersPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Normalization_layersPackage getPackage() {
+ return Normalization_layersPackage.eINSTANCE;
+ }
+
+} //Normalization_layersFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layersImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layersImpl.java
new file mode 100644
index 0000000..8ee3a25
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layersImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Normalization layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class Normalization_layersImpl extends ModelImpl implements Normalization_layers {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Normalization_layersImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Normalization_layersPackage.Literals.NORMALIZATION_LAYERS;
+ }
+
+} //Normalization_layersImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layersPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layersPackageImpl.java
new file mode 100644
index 0000000..05237fc
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layersPackageImpl.java
@@ -0,0 +1,852 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.GroupNorm;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.SyncBatchNorm;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Normalization_layersPackageImpl extends EPackageImpl implements Normalization_layersPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass normalization_layersEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass normalization_layers_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass layerNormEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass localResponseNormEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass normalization_layers_1_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass normalization_layers_1_1_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass groupNormEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass batchNorm1dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass batchNorm2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass batchNorm3dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass syncBatchNormEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass instanceNorm1dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass instanceNorm2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass instanceNorm3dEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Normalization_layersPackageImpl() {
+ super(eNS_URI, Normalization_layersFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Normalization_layersPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Normalization_layersPackage init() {
+ if (isInited) return (Normalization_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredNormalization_layersPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = registeredNormalization_layersPackage instanceof Normalization_layersPackageImpl ? (Normalization_layersPackageImpl)registeredNormalization_layersPackage : new Normalization_layersPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theNormalization_layersPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theNormalization_layersPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theNormalization_layersPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Normalization_layersPackage.eNS_URI, theNormalization_layersPackage);
+ return theNormalization_layersPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getNormalization_layers() {
+ return normalization_layersEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getNormalization_layers_1() {
+ return normalization_layers_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getNormalization_layers_1_Eps() {
+ return (EAttribute)normalization_layers_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLayerNorm() {
+ return layerNormEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLayerNorm_Normalized_shape() {
+ return (EAttribute)layerNormEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLayerNorm_Elementwise_affine() {
+ return (EAttribute)layerNormEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLocalResponseNorm() {
+ return localResponseNormEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLocalResponseNorm_Size() {
+ return (EAttribute)localResponseNormEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLocalResponseNorm_Alpha() {
+ return (EAttribute)localResponseNormEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLocalResponseNorm_Beta() {
+ return (EAttribute)localResponseNormEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getLocalResponseNorm_K() {
+ return (EAttribute)localResponseNormEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getNormalization_layers_1_1() {
+ return normalization_layers_1_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getNormalization_layers_1_1_Affine() {
+ return (EAttribute)normalization_layers_1_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getNormalization_layers_1_1_1() {
+ return normalization_layers_1_1_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getNormalization_layers_1_1_1_Num_features() {
+ return (EAttribute)normalization_layers_1_1_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getNormalization_layers_1_1_1_Momentum() {
+ return (EAttribute)normalization_layers_1_1_1EClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getNormalization_layers_1_1_1_Track_running_stats() {
+ return (EAttribute)normalization_layers_1_1_1EClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getGroupNorm() {
+ return groupNormEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getGroupNorm_Num_groups() {
+ return (EAttribute)groupNormEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getGroupNorm_Num_channels() {
+ return (EAttribute)groupNormEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getBatchNorm1d() {
+ return batchNorm1dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getBatchNorm2d() {
+ return batchNorm2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getBatchNorm3d() {
+ return batchNorm3dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSyncBatchNorm() {
+ return syncBatchNormEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSyncBatchNorm_Process_group() {
+ return (EAttribute)syncBatchNormEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getInstanceNorm1d() {
+ return instanceNorm1dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getInstanceNorm2d() {
+ return instanceNorm2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getInstanceNorm3d() {
+ return instanceNorm3dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Normalization_layersFactory getNormalization_layersFactory() {
+ return (Normalization_layersFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ normalization_layersEClass = createEClass(NORMALIZATION_LAYERS);
+
+ normalization_layers_1EClass = createEClass(NORMALIZATION_LAYERS_1);
+ createEAttribute(normalization_layers_1EClass, NORMALIZATION_LAYERS_1__EPS);
+
+ layerNormEClass = createEClass(LAYER_NORM);
+ createEAttribute(layerNormEClass, LAYER_NORM__NORMALIZED_SHAPE);
+ createEAttribute(layerNormEClass, LAYER_NORM__ELEMENTWISE_AFFINE);
+
+ localResponseNormEClass = createEClass(LOCAL_RESPONSE_NORM);
+ createEAttribute(localResponseNormEClass, LOCAL_RESPONSE_NORM__SIZE);
+ createEAttribute(localResponseNormEClass, LOCAL_RESPONSE_NORM__ALPHA);
+ createEAttribute(localResponseNormEClass, LOCAL_RESPONSE_NORM__BETA);
+ createEAttribute(localResponseNormEClass, LOCAL_RESPONSE_NORM__K);
+
+ normalization_layers_1_1EClass = createEClass(NORMALIZATION_LAYERS_11);
+ createEAttribute(normalization_layers_1_1EClass, NORMALIZATION_LAYERS_11__AFFINE);
+
+ normalization_layers_1_1_1EClass = createEClass(NORMALIZATION_LAYERS_111);
+ createEAttribute(normalization_layers_1_1_1EClass, NORMALIZATION_LAYERS_111__NUM_FEATURES);
+ createEAttribute(normalization_layers_1_1_1EClass, NORMALIZATION_LAYERS_111__MOMENTUM);
+ createEAttribute(normalization_layers_1_1_1EClass, NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS);
+
+ groupNormEClass = createEClass(GROUP_NORM);
+ createEAttribute(groupNormEClass, GROUP_NORM__NUM_GROUPS);
+ createEAttribute(groupNormEClass, GROUP_NORM__NUM_CHANNELS);
+
+ batchNorm1dEClass = createEClass(BATCH_NORM1D);
+
+ batchNorm2dEClass = createEClass(BATCH_NORM2D);
+
+ batchNorm3dEClass = createEClass(BATCH_NORM3D);
+
+ syncBatchNormEClass = createEClass(SYNC_BATCH_NORM);
+ createEAttribute(syncBatchNormEClass, SYNC_BATCH_NORM__PROCESS_GROUP);
+
+ instanceNorm1dEClass = createEClass(INSTANCE_NORM1D);
+
+ instanceNorm2dEClass = createEClass(INSTANCE_NORM2D);
+
+ instanceNorm3dEClass = createEClass(INSTANCE_NORM3D);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ normalization_layersEClass.getESuperTypes().add(theModulePackage.getModel());
+ normalization_layers_1EClass.getESuperTypes().add(this.getNormalization_layers());
+ layerNormEClass.getESuperTypes().add(this.getNormalization_layers_1());
+ localResponseNormEClass.getESuperTypes().add(this.getNormalization_layers());
+ normalization_layers_1_1EClass.getESuperTypes().add(this.getNormalization_layers_1());
+ normalization_layers_1_1_1EClass.getESuperTypes().add(this.getNormalization_layers_1_1());
+ groupNormEClass.getESuperTypes().add(this.getNormalization_layers_1_1());
+ batchNorm1dEClass.getESuperTypes().add(this.getNormalization_layers_1_1_1());
+ batchNorm2dEClass.getESuperTypes().add(this.getNormalization_layers_1_1_1());
+ batchNorm3dEClass.getESuperTypes().add(this.getNormalization_layers_1_1_1());
+ syncBatchNormEClass.getESuperTypes().add(this.getNormalization_layers_1_1_1());
+ instanceNorm1dEClass.getESuperTypes().add(this.getNormalization_layers_1_1_1());
+ instanceNorm2dEClass.getESuperTypes().add(this.getNormalization_layers_1_1_1());
+ instanceNorm3dEClass.getESuperTypes().add(this.getNormalization_layers_1_1_1());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(normalization_layersEClass, Normalization_layers.class, "Normalization_layers", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(normalization_layers_1EClass, Normalization_layers_1.class, "Normalization_layers_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getNormalization_layers_1_Eps(), theTypesPackage.getReal(), "eps", null, 0, 1, Normalization_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(layerNormEClass, LayerNorm.class, "LayerNorm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLayerNorm_Normalized_shape(), theTypesPackage.getInteger(), "normalized_shape", null, 0, -1, LayerNorm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLayerNorm_Elementwise_affine(), theTypesPackage.getBoolean(), "elementwise_affine", null, 0, 1, LayerNorm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(localResponseNormEClass, LocalResponseNorm.class, "LocalResponseNorm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getLocalResponseNorm_Size(), theTypesPackage.getInteger(), "size", null, 1, 1, LocalResponseNorm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLocalResponseNorm_Alpha(), theTypesPackage.getReal(), "alpha", null, 0, 1, LocalResponseNorm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLocalResponseNorm_Beta(), theTypesPackage.getReal(), "beta", null, 0, 1, LocalResponseNorm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getLocalResponseNorm_K(), theTypesPackage.getReal(), "k", null, 0, 1, LocalResponseNorm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(normalization_layers_1_1EClass, Normalization_layers_1_1.class, "Normalization_layers_1_1", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getNormalization_layers_1_1_Affine(), theTypesPackage.getBoolean(), "affine", null, 0, 1, Normalization_layers_1_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(normalization_layers_1_1_1EClass, Normalization_layers_1_1_1.class, "Normalization_layers_1_1_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getNormalization_layers_1_1_1_Num_features(), theTypesPackage.getInteger(), "num_features", null, 1, 1, Normalization_layers_1_1_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getNormalization_layers_1_1_1_Momentum(), theTypesPackage.getReal(), "momentum", null, 0, 1, Normalization_layers_1_1_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getNormalization_layers_1_1_1_Track_running_stats(), theTypesPackage.getBoolean(), "track_running_stats", null, 0, 1, Normalization_layers_1_1_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(groupNormEClass, GroupNorm.class, "GroupNorm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getGroupNorm_Num_groups(), theTypesPackage.getInteger(), "num_groups", null, 1, 1, GroupNorm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getGroupNorm_Num_channels(), theTypesPackage.getInteger(), "num_channels", null, 1, 1, GroupNorm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(batchNorm1dEClass, BatchNorm1d.class, "BatchNorm1d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(batchNorm2dEClass, BatchNorm2d.class, "BatchNorm2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(batchNorm3dEClass, BatchNorm3d.class, "BatchNorm3d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(syncBatchNormEClass, SyncBatchNorm.class, "SyncBatchNorm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getSyncBatchNorm_Process_group(), theTypesPackage.getInteger(), "process_group", null, 0, 1, SyncBatchNorm.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(instanceNorm1dEClass, InstanceNorm1d.class, "InstanceNorm1d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(instanceNorm2dEClass, InstanceNorm2d.class, "InstanceNorm2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(instanceNorm3dEClass, InstanceNorm3d.class, "InstanceNorm3d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ // Create annotations
+ // http://www.eclipse.org/uml2/2.0.0/UML
+ createUMLAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/uml2/2.0.0/UML</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createUMLAnnotations() {
+ String source = "http://www.eclipse.org/uml2/2.0.0/UML"; //$NON-NLS-1$
+ addAnnotation
+ (getNormalization_layers_1_1_1_Track_running_stats(),
+ source,
+ new String[] {
+ "originalName", "track_running_stats " //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ addAnnotation
+ (getSyncBatchNorm_Process_group(),
+ source,
+ new String[] {
+ "originalName", "process_group " //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ }
+
+} //Normalization_layersPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layers_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layers_1Impl.java
new file mode 100644
index 0000000..df7bff6
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layers_1Impl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Normalization layers 1</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1Impl#getEps <em>Eps</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Normalization_layers_1Impl extends Normalization_layersImpl implements Normalization_layers_1 {
+ /**
+ * The default value of the '{@link #getEps() <em>Eps</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEps()
+ * @generated
+ * @ordered
+ */
+ protected static final double EPS_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getEps() <em>Eps</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEps()
+ * @generated
+ * @ordered
+ */
+ protected double eps = EPS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Normalization_layers_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Normalization_layersPackage.Literals.NORMALIZATION_LAYERS_1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getEps() {
+ return eps;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setEps(double newEps) {
+ double oldEps = eps;
+ eps = newEps;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Normalization_layersPackage.NORMALIZATION_LAYERS_1__EPS, oldEps, eps));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_1__EPS:
+ return getEps();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_1__EPS:
+ setEps((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_1__EPS:
+ setEps(EPS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_1__EPS:
+ return eps != EPS_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (eps: "); //$NON-NLS-1$
+ result.append(eps);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Normalization_layers_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layers_1_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layers_1_1Impl.java
new file mode 100644
index 0000000..aa899cc
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layers_1_1Impl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Normalization layers 11</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1_1Impl#isAffine <em>Affine</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class Normalization_layers_1_1Impl extends Normalization_layers_1Impl implements Normalization_layers_1_1 {
+ /**
+ * The default value of the '{@link #isAffine() <em>Affine</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAffine()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean AFFINE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isAffine() <em>Affine</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAffine()
+ * @generated
+ * @ordered
+ */
+ protected boolean affine = AFFINE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Normalization_layers_1_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Normalization_layersPackage.Literals.NORMALIZATION_LAYERS_11;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isAffine() {
+ return affine;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setAffine(boolean newAffine) {
+ boolean oldAffine = affine;
+ affine = newAffine;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Normalization_layersPackage.NORMALIZATION_LAYERS_11__AFFINE, oldAffine, affine));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_11__AFFINE:
+ return isAffine();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_11__AFFINE:
+ setAffine((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_11__AFFINE:
+ setAffine(AFFINE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_11__AFFINE:
+ return affine != AFFINE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (affine: "); //$NON-NLS-1$
+ result.append(affine);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Normalization_layers_1_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layers_1_1_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layers_1_1_1Impl.java
new file mode 100644
index 0000000..991f74f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/Normalization_layers_1_1_1Impl.java
@@ -0,0 +1,285 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Normalization layers 111</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1_1_1Impl#getNum_features <em>Num features</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1_1_1Impl#getMomentum <em>Momentum</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layers_1_1_1Impl#isTrack_running_stats <em>Track running stats</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Normalization_layers_1_1_1Impl extends Normalization_layers_1_1Impl implements Normalization_layers_1_1_1 {
+ /**
+ * The default value of the '{@link #getNum_features() <em>Num features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_features()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUM_FEATURES_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNum_features() <em>Num features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_features()
+ * @generated
+ * @ordered
+ */
+ protected int num_features = NUM_FEATURES_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMomentum() <em>Momentum</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMomentum()
+ * @generated
+ * @ordered
+ */
+ protected static final double MOMENTUM_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getMomentum() <em>Momentum</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMomentum()
+ * @generated
+ * @ordered
+ */
+ protected double momentum = MOMENTUM_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isTrack_running_stats() <em>Track running stats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isTrack_running_stats()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean TRACK_RUNNING_STATS_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isTrack_running_stats() <em>Track running stats</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isTrack_running_stats()
+ * @generated
+ * @ordered
+ */
+ protected boolean track_running_stats = TRACK_RUNNING_STATS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Normalization_layers_1_1_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Normalization_layersPackage.Literals.NORMALIZATION_LAYERS_111;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getNum_features() {
+ return num_features;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNum_features(int newNum_features) {
+ int oldNum_features = num_features;
+ num_features = newNum_features;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Normalization_layersPackage.NORMALIZATION_LAYERS_111__NUM_FEATURES, oldNum_features, num_features));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getMomentum() {
+ return momentum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMomentum(double newMomentum) {
+ double oldMomentum = momentum;
+ momentum = newMomentum;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Normalization_layersPackage.NORMALIZATION_LAYERS_111__MOMENTUM, oldMomentum, momentum));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isTrack_running_stats() {
+ return track_running_stats;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setTrack_running_stats(boolean newTrack_running_stats) {
+ boolean oldTrack_running_stats = track_running_stats;
+ track_running_stats = newTrack_running_stats;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Normalization_layersPackage.NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS, oldTrack_running_stats, track_running_stats));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_111__NUM_FEATURES:
+ return getNum_features();
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_111__MOMENTUM:
+ return getMomentum();
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS:
+ return isTrack_running_stats();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_111__NUM_FEATURES:
+ setNum_features((Integer)newValue);
+ return;
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_111__MOMENTUM:
+ setMomentum((Double)newValue);
+ return;
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS:
+ setTrack_running_stats((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_111__NUM_FEATURES:
+ setNum_features(NUM_FEATURES_EDEFAULT);
+ return;
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_111__MOMENTUM:
+ setMomentum(MOMENTUM_EDEFAULT);
+ return;
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS:
+ setTrack_running_stats(TRACK_RUNNING_STATS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_111__NUM_FEATURES:
+ return num_features != NUM_FEATURES_EDEFAULT;
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_111__MOMENTUM:
+ return momentum != MOMENTUM_EDEFAULT;
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_111__TRACK_RUNNING_STATS:
+ return track_running_stats != TRACK_RUNNING_STATS_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (num_features: "); //$NON-NLS-1$
+ result.append(num_features);
+ result.append(", momentum: "); //$NON-NLS-1$
+ result.append(momentum);
+ result.append(", track_running_stats: "); //$NON-NLS-1$
+ result.append(track_running_stats);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Normalization_layers_1_1_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/SyncBatchNormImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/SyncBatchNormImpl.java
new file mode 100644
index 0000000..5a2c22e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/impl/SyncBatchNormImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.SyncBatchNorm;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sync Batch Norm</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.SyncBatchNormImpl#getProcess_group <em>Process group</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SyncBatchNormImpl extends Normalization_layers_1_1_1Impl implements SyncBatchNorm {
+ /**
+ * The default value of the '{@link #getProcess_group() <em>Process group</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProcess_group()
+ * @generated
+ * @ordered
+ */
+ protected static final int PROCESS_GROUP_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getProcess_group() <em>Process group</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProcess_group()
+ * @generated
+ * @ordered
+ */
+ protected int process_group = PROCESS_GROUP_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SyncBatchNormImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Normalization_layersPackage.Literals.SYNC_BATCH_NORM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getProcess_group() {
+ return process_group;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setProcess_group(int newProcess_group) {
+ int oldProcess_group = process_group;
+ process_group = newProcess_group;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Normalization_layersPackage.SYNC_BATCH_NORM__PROCESS_GROUP, oldProcess_group, process_group));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Normalization_layersPackage.SYNC_BATCH_NORM__PROCESS_GROUP:
+ return getProcess_group();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Normalization_layersPackage.SYNC_BATCH_NORM__PROCESS_GROUP:
+ setProcess_group((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Normalization_layersPackage.SYNC_BATCH_NORM__PROCESS_GROUP:
+ setProcess_group(PROCESS_GROUP_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Normalization_layersPackage.SYNC_BATCH_NORM__PROCESS_GROUP:
+ return process_group != PROCESS_GROUP_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (process_group: "); //$NON-NLS-1$
+ result.append(process_group);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SyncBatchNormImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/util/Normalization_layersAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/util/Normalization_layersAdapterFactory.java
new file mode 100644
index 0000000..67f8cfb
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/util/Normalization_layersAdapterFactory.java
@@ -0,0 +1,381 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage
+ * @generated
+ */
+public class Normalization_layersAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Normalization_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Normalization_layersAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Normalization_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Normalization_layersSwitch<Adapter> modelSwitch =
+ new Normalization_layersSwitch<Adapter>() {
+ @Override
+ public Adapter caseNormalization_layers(Normalization_layers object) {
+ return createNormalization_layersAdapter();
+ }
+ @Override
+ public Adapter caseNormalization_layers_1(Normalization_layers_1 object) {
+ return createNormalization_layers_1Adapter();
+ }
+ @Override
+ public Adapter caseLayerNorm(LayerNorm object) {
+ return createLayerNormAdapter();
+ }
+ @Override
+ public Adapter caseLocalResponseNorm(LocalResponseNorm object) {
+ return createLocalResponseNormAdapter();
+ }
+ @Override
+ public Adapter caseNormalization_layers_1_1(Normalization_layers_1_1 object) {
+ return createNormalization_layers_1_1Adapter();
+ }
+ @Override
+ public Adapter caseNormalization_layers_1_1_1(Normalization_layers_1_1_1 object) {
+ return createNormalization_layers_1_1_1Adapter();
+ }
+ @Override
+ public Adapter caseGroupNorm(GroupNorm object) {
+ return createGroupNormAdapter();
+ }
+ @Override
+ public Adapter caseBatchNorm1d(BatchNorm1d object) {
+ return createBatchNorm1dAdapter();
+ }
+ @Override
+ public Adapter caseBatchNorm2d(BatchNorm2d object) {
+ return createBatchNorm2dAdapter();
+ }
+ @Override
+ public Adapter caseBatchNorm3d(BatchNorm3d object) {
+ return createBatchNorm3dAdapter();
+ }
+ @Override
+ public Adapter caseSyncBatchNorm(SyncBatchNorm object) {
+ return createSyncBatchNormAdapter();
+ }
+ @Override
+ public Adapter caseInstanceNorm1d(InstanceNorm1d object) {
+ return createInstanceNorm1dAdapter();
+ }
+ @Override
+ public Adapter caseInstanceNorm2d(InstanceNorm2d object) {
+ return createInstanceNorm2dAdapter();
+ }
+ @Override
+ public Adapter caseInstanceNorm3d(InstanceNorm3d object) {
+ return createInstanceNorm3dAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers <em>Normalization layers</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers
+ * @generated
+ */
+ public Adapter createNormalization_layersAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1 <em>Normalization layers 1</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1
+ * @generated
+ */
+ public Adapter createNormalization_layers_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm <em>Layer Norm</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm
+ * @generated
+ */
+ public Adapter createLayerNormAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm <em>Local Response Norm</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LocalResponseNorm
+ * @generated
+ */
+ public Adapter createLocalResponseNormAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1 <em>Normalization layers 11</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1
+ * @generated
+ */
+ public Adapter createNormalization_layers_1_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1 <em>Normalization layers 111</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layers_1_1_1
+ * @generated
+ */
+ public Adapter createNormalization_layers_1_1_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.GroupNorm <em>Group Norm</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.GroupNorm
+ * @generated
+ */
+ public Adapter createGroupNormAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm1d <em>Batch Norm1d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm1d
+ * @generated
+ */
+ public Adapter createBatchNorm1dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm2d <em>Batch Norm2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm2d
+ * @generated
+ */
+ public Adapter createBatchNorm2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm3d <em>Batch Norm3d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.BatchNorm3d
+ * @generated
+ */
+ public Adapter createBatchNorm3dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.SyncBatchNorm <em>Sync Batch Norm</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.SyncBatchNorm
+ * @generated
+ */
+ public Adapter createSyncBatchNormAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm1d <em>Instance Norm1d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm1d
+ * @generated
+ */
+ public Adapter createInstanceNorm1dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm2d <em>Instance Norm2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm2d
+ * @generated
+ */
+ public Adapter createInstanceNorm2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm3d <em>Instance Norm3d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.InstanceNorm3d
+ * @generated
+ */
+ public Adapter createInstanceNorm3dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Normalization_layersAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/util/Normalization_layersSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/util/Normalization_layersSwitch.java
new file mode 100644
index 0000000..4e922b5
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Normalization_layers/util/Normalization_layersSwitch.java
@@ -0,0 +1,461 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage
+ * @generated
+ */
+public class Normalization_layersSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Normalization_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Normalization_layersSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Normalization_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Normalization_layersPackage.NORMALIZATION_LAYERS: {
+ Normalization_layers normalization_layers = (Normalization_layers)theEObject;
+ T result = caseNormalization_layers(normalization_layers);
+ if (result == null) result = caseModel(normalization_layers);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_1: {
+ Normalization_layers_1 normalization_layers_1 = (Normalization_layers_1)theEObject;
+ T result = caseNormalization_layers_1(normalization_layers_1);
+ if (result == null) result = caseNormalization_layers(normalization_layers_1);
+ if (result == null) result = caseModel(normalization_layers_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Normalization_layersPackage.LAYER_NORM: {
+ LayerNorm layerNorm = (LayerNorm)theEObject;
+ T result = caseLayerNorm(layerNorm);
+ if (result == null) result = caseNormalization_layers_1(layerNorm);
+ if (result == null) result = caseNormalization_layers(layerNorm);
+ if (result == null) result = caseModel(layerNorm);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Normalization_layersPackage.LOCAL_RESPONSE_NORM: {
+ LocalResponseNorm localResponseNorm = (LocalResponseNorm)theEObject;
+ T result = caseLocalResponseNorm(localResponseNorm);
+ if (result == null) result = caseNormalization_layers(localResponseNorm);
+ if (result == null) result = caseModel(localResponseNorm);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_11: {
+ Normalization_layers_1_1 normalization_layers_1_1 = (Normalization_layers_1_1)theEObject;
+ T result = caseNormalization_layers_1_1(normalization_layers_1_1);
+ if (result == null) result = caseNormalization_layers_1(normalization_layers_1_1);
+ if (result == null) result = caseNormalization_layers(normalization_layers_1_1);
+ if (result == null) result = caseModel(normalization_layers_1_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Normalization_layersPackage.NORMALIZATION_LAYERS_111: {
+ Normalization_layers_1_1_1 normalization_layers_1_1_1 = (Normalization_layers_1_1_1)theEObject;
+ T result = caseNormalization_layers_1_1_1(normalization_layers_1_1_1);
+ if (result == null) result = caseNormalization_layers_1_1(normalization_layers_1_1_1);
+ if (result == null) result = caseNormalization_layers_1(normalization_layers_1_1_1);
+ if (result == null) result = caseNormalization_layers(normalization_layers_1_1_1);
+ if (result == null) result = caseModel(normalization_layers_1_1_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Normalization_layersPackage.GROUP_NORM: {
+ GroupNorm groupNorm = (GroupNorm)theEObject;
+ T result = caseGroupNorm(groupNorm);
+ if (result == null) result = caseNormalization_layers_1_1(groupNorm);
+ if (result == null) result = caseNormalization_layers_1(groupNorm);
+ if (result == null) result = caseNormalization_layers(groupNorm);
+ if (result == null) result = caseModel(groupNorm);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Normalization_layersPackage.BATCH_NORM1D: {
+ BatchNorm1d batchNorm1d = (BatchNorm1d)theEObject;
+ T result = caseBatchNorm1d(batchNorm1d);
+ if (result == null) result = caseNormalization_layers_1_1_1(batchNorm1d);
+ if (result == null) result = caseNormalization_layers_1_1(batchNorm1d);
+ if (result == null) result = caseNormalization_layers_1(batchNorm1d);
+ if (result == null) result = caseNormalization_layers(batchNorm1d);
+ if (result == null) result = caseModel(batchNorm1d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Normalization_layersPackage.BATCH_NORM2D: {
+ BatchNorm2d batchNorm2d = (BatchNorm2d)theEObject;
+ T result = caseBatchNorm2d(batchNorm2d);
+ if (result == null) result = caseNormalization_layers_1_1_1(batchNorm2d);
+ if (result == null) result = caseNormalization_layers_1_1(batchNorm2d);
+ if (result == null) result = caseNormalization_layers_1(batchNorm2d);
+ if (result == null) result = caseNormalization_layers(batchNorm2d);
+ if (result == null) result = caseModel(batchNorm2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Normalization_layersPackage.BATCH_NORM3D: {
+ BatchNorm3d batchNorm3d = (BatchNorm3d)theEObject;
+ T result = caseBatchNorm3d(batchNorm3d);
+ if (result == null) result = caseNormalization_layers_1_1_1(batchNorm3d);
+ if (result == null) result = caseNormalization_layers_1_1(batchNorm3d);
+ if (result == null) result = caseNormalization_layers_1(batchNorm3d);
+ if (result == null) result = caseNormalization_layers(batchNorm3d);
+ if (result == null) result = caseModel(batchNorm3d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Normalization_layersPackage.SYNC_BATCH_NORM: {
+ SyncBatchNorm syncBatchNorm = (SyncBatchNorm)theEObject;
+ T result = caseSyncBatchNorm(syncBatchNorm);
+ if (result == null) result = caseNormalization_layers_1_1_1(syncBatchNorm);
+ if (result == null) result = caseNormalization_layers_1_1(syncBatchNorm);
+ if (result == null) result = caseNormalization_layers_1(syncBatchNorm);
+ if (result == null) result = caseNormalization_layers(syncBatchNorm);
+ if (result == null) result = caseModel(syncBatchNorm);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Normalization_layersPackage.INSTANCE_NORM1D: {
+ InstanceNorm1d instanceNorm1d = (InstanceNorm1d)theEObject;
+ T result = caseInstanceNorm1d(instanceNorm1d);
+ if (result == null) result = caseNormalization_layers_1_1_1(instanceNorm1d);
+ if (result == null) result = caseNormalization_layers_1_1(instanceNorm1d);
+ if (result == null) result = caseNormalization_layers_1(instanceNorm1d);
+ if (result == null) result = caseNormalization_layers(instanceNorm1d);
+ if (result == null) result = caseModel(instanceNorm1d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Normalization_layersPackage.INSTANCE_NORM2D: {
+ InstanceNorm2d instanceNorm2d = (InstanceNorm2d)theEObject;
+ T result = caseInstanceNorm2d(instanceNorm2d);
+ if (result == null) result = caseNormalization_layers_1_1_1(instanceNorm2d);
+ if (result == null) result = caseNormalization_layers_1_1(instanceNorm2d);
+ if (result == null) result = caseNormalization_layers_1(instanceNorm2d);
+ if (result == null) result = caseNormalization_layers(instanceNorm2d);
+ if (result == null) result = caseModel(instanceNorm2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Normalization_layersPackage.INSTANCE_NORM3D: {
+ InstanceNorm3d instanceNorm3d = (InstanceNorm3d)theEObject;
+ T result = caseInstanceNorm3d(instanceNorm3d);
+ if (result == null) result = caseNormalization_layers_1_1_1(instanceNorm3d);
+ if (result == null) result = caseNormalization_layers_1_1(instanceNorm3d);
+ if (result == null) result = caseNormalization_layers_1(instanceNorm3d);
+ if (result == null) result = caseNormalization_layers(instanceNorm3d);
+ if (result == null) result = caseModel(instanceNorm3d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Normalization layers</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Normalization layers</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNormalization_layers(Normalization_layers object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Normalization layers 1</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Normalization layers 1</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNormalization_layers_1(Normalization_layers_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Layer Norm</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Layer Norm</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLayerNorm(LayerNorm object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Local Response Norm</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Local Response Norm</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLocalResponseNorm(LocalResponseNorm object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Normalization layers 11</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Normalization layers 11</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNormalization_layers_1_1(Normalization_layers_1_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Normalization layers 111</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Normalization layers 111</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNormalization_layers_1_1_1(Normalization_layers_1_1_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Group Norm</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Group Norm</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGroupNorm(GroupNorm object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Batch Norm1d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Batch Norm1d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBatchNorm1d(BatchNorm1d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Batch Norm2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Batch Norm2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBatchNorm2d(BatchNorm2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Batch Norm3d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Batch Norm3d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBatchNorm3d(BatchNorm3d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sync Batch Norm</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sync Batch Norm</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSyncBatchNorm(SyncBatchNorm object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Instance Norm1d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Instance Norm1d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInstanceNorm1d(InstanceNorm1d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Instance Norm2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Instance Norm2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInstanceNorm2d(InstanceNorm2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Instance Norm3d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Instance Norm3d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInstanceNorm3d(InstanceNorm3d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Normalization_layersSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ConstantPad1d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ConstantPad1d.java
new file mode 100644
index 0000000..6a26915
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ConstantPad1d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Constant Pad1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage#getConstantPad1d()
+ * @model
+ * @generated
+ */
+public interface ConstantPad1d extends Padding_layers {
+} // ConstantPad1d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ConstantPad2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ConstantPad2d.java
new file mode 100644
index 0000000..3f225d8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ConstantPad2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Constant Pad2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage#getConstantPad2d()
+ * @model
+ * @generated
+ */
+public interface ConstantPad2d extends Padding_layers {
+} // ConstantPad2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ConstantPad3d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ConstantPad3d.java
new file mode 100644
index 0000000..7b3f8dd
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ConstantPad3d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Constant Pad3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage#getConstantPad3d()
+ * @model
+ * @generated
+ */
+public interface ConstantPad3d extends Padding_layers {
+} // ConstantPad3d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/Padding_layers.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/Padding_layers.java
new file mode 100644
index 0000000..e70b0d2
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/Padding_layers.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Padding layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layers#getPadding <em>Padding</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage#getPadding_layers()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Padding_layers extends Model {
+ /**
+ * Returns the value of the '<em><b>Padding</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Padding</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Padding</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage#getPadding_layers_Padding()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getPadding();
+
+} // Padding_layers
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/Padding_layersFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/Padding_layersFactory.java
new file mode 100644
index 0000000..1998d33
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/Padding_layersFactory.java
@@ -0,0 +1,123 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage
+ * @generated
+ */
+public interface Padding_layersFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Padding_layersFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Reflection Pad1d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Reflection Pad1d</em>'.
+ * @generated
+ */
+ ReflectionPad1d createReflectionPad1d();
+
+ /**
+ * Returns a new object of class '<em>Reflection Pad2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Reflection Pad2d</em>'.
+ * @generated
+ */
+ ReflectionPad2d createReflectionPad2d();
+
+ /**
+ * Returns a new object of class '<em>Replication Pad1d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Replication Pad1d</em>'.
+ * @generated
+ */
+ ReplicationPad1d createReplicationPad1d();
+
+ /**
+ * Returns a new object of class '<em>Replication Pad2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Replication Pad2d</em>'.
+ * @generated
+ */
+ ReplicationPad2d createReplicationPad2d();
+
+ /**
+ * Returns a new object of class '<em>Replication Pad3d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Replication Pad3d</em>'.
+ * @generated
+ */
+ ReplicationPad3d createReplicationPad3d();
+
+ /**
+ * Returns a new object of class '<em>Zero Pad2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Zero Pad2d</em>'.
+ * @generated
+ */
+ ZeroPad2d createZeroPad2d();
+
+ /**
+ * Returns a new object of class '<em>Constant Pad1d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Constant Pad1d</em>'.
+ * @generated
+ */
+ ConstantPad1d createConstantPad1d();
+
+ /**
+ * Returns a new object of class '<em>Constant Pad2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Constant Pad2d</em>'.
+ * @generated
+ */
+ ConstantPad2d createConstantPad2d();
+
+ /**
+ * Returns a new object of class '<em>Constant Pad3d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Constant Pad3d</em>'.
+ * @generated
+ */
+ ConstantPad3d createConstantPad3d();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Padding_layersPackage getPadding_layersPackage();
+
+} //Padding_layersFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/Padding_layersPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/Padding_layersPackage.java
new file mode 100644
index 0000000..474a1c0
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/Padding_layersPackage.java
@@ -0,0 +1,1314 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Padding_layersPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Padding_layers"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/padding/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Padding_layers"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Padding_layersPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersImpl <em>Padding layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getPadding_layers()
+ * @generated
+ */
+ int PADDING_LAYERS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PADDING_LAYERS__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PADDING_LAYERS__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PADDING_LAYERS__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PADDING_LAYERS__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PADDING_LAYERS__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PADDING_LAYERS__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PADDING_LAYERS__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PADDING_LAYERS__PADDING = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Padding layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PADDING_LAYERS_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Padding layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PADDING_LAYERS_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReflectionPad1dImpl <em>Reflection Pad1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReflectionPad1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getReflectionPad1d()
+ * @generated
+ */
+ int REFLECTION_PAD1D = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD1D__BASE_CLASS = PADDING_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD1D__NAME = PADDING_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD1D__DATA = PADDING_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD1D__REQUIRES_GRAD = PADDING_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD1D__SUB_MODULE = PADDING_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD1D__OPTIMIZER = PADDING_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD1D__LOSS = PADDING_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD1D__PADDING = PADDING_LAYERS__PADDING;
+
+ /**
+ * The number of structural features of the '<em>Reflection Pad1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD1D_FEATURE_COUNT = PADDING_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Reflection Pad1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD1D_OPERATION_COUNT = PADDING_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReflectionPad2dImpl <em>Reflection Pad2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReflectionPad2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getReflectionPad2d()
+ * @generated
+ */
+ int REFLECTION_PAD2D = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD2D__BASE_CLASS = PADDING_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD2D__NAME = PADDING_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD2D__DATA = PADDING_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD2D__REQUIRES_GRAD = PADDING_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD2D__SUB_MODULE = PADDING_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD2D__OPTIMIZER = PADDING_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD2D__LOSS = PADDING_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD2D__PADDING = PADDING_LAYERS__PADDING;
+
+ /**
+ * The number of structural features of the '<em>Reflection Pad2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD2D_FEATURE_COUNT = PADDING_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Reflection Pad2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REFLECTION_PAD2D_OPERATION_COUNT = PADDING_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReplicationPad1dImpl <em>Replication Pad1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReplicationPad1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getReplicationPad1d()
+ * @generated
+ */
+ int REPLICATION_PAD1D = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD1D__BASE_CLASS = PADDING_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD1D__NAME = PADDING_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD1D__DATA = PADDING_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD1D__REQUIRES_GRAD = PADDING_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD1D__SUB_MODULE = PADDING_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD1D__OPTIMIZER = PADDING_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD1D__LOSS = PADDING_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD1D__PADDING = PADDING_LAYERS__PADDING;
+
+ /**
+ * The number of structural features of the '<em>Replication Pad1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD1D_FEATURE_COUNT = PADDING_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Replication Pad1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD1D_OPERATION_COUNT = PADDING_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReplicationPad2dImpl <em>Replication Pad2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReplicationPad2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getReplicationPad2d()
+ * @generated
+ */
+ int REPLICATION_PAD2D = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD2D__BASE_CLASS = PADDING_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD2D__NAME = PADDING_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD2D__DATA = PADDING_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD2D__REQUIRES_GRAD = PADDING_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD2D__SUB_MODULE = PADDING_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD2D__OPTIMIZER = PADDING_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD2D__LOSS = PADDING_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD2D__PADDING = PADDING_LAYERS__PADDING;
+
+ /**
+ * The number of structural features of the '<em>Replication Pad2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD2D_FEATURE_COUNT = PADDING_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Replication Pad2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD2D_OPERATION_COUNT = PADDING_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReplicationPad3dImpl <em>Replication Pad3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReplicationPad3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getReplicationPad3d()
+ * @generated
+ */
+ int REPLICATION_PAD3D = 5;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD3D__BASE_CLASS = PADDING_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD3D__NAME = PADDING_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD3D__DATA = PADDING_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD3D__REQUIRES_GRAD = PADDING_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD3D__SUB_MODULE = PADDING_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD3D__OPTIMIZER = PADDING_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD3D__LOSS = PADDING_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD3D__PADDING = PADDING_LAYERS__PADDING;
+
+ /**
+ * The number of structural features of the '<em>Replication Pad3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD3D_FEATURE_COUNT = PADDING_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Replication Pad3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPLICATION_PAD3D_OPERATION_COUNT = PADDING_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ZeroPad2dImpl <em>Zero Pad2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ZeroPad2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getZeroPad2d()
+ * @generated
+ */
+ int ZERO_PAD2D = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZERO_PAD2D__BASE_CLASS = PADDING_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZERO_PAD2D__NAME = PADDING_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZERO_PAD2D__DATA = PADDING_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZERO_PAD2D__REQUIRES_GRAD = PADDING_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZERO_PAD2D__SUB_MODULE = PADDING_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZERO_PAD2D__OPTIMIZER = PADDING_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZERO_PAD2D__LOSS = PADDING_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZERO_PAD2D__PADDING = PADDING_LAYERS__PADDING;
+
+ /**
+ * The number of structural features of the '<em>Zero Pad2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZERO_PAD2D_FEATURE_COUNT = PADDING_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Zero Pad2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ZERO_PAD2D_OPERATION_COUNT = PADDING_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ConstantPad1dImpl <em>Constant Pad1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ConstantPad1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getConstantPad1d()
+ * @generated
+ */
+ int CONSTANT_PAD1D = 7;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD1D__BASE_CLASS = PADDING_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD1D__NAME = PADDING_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD1D__DATA = PADDING_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD1D__REQUIRES_GRAD = PADDING_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD1D__SUB_MODULE = PADDING_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD1D__OPTIMIZER = PADDING_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD1D__LOSS = PADDING_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD1D__PADDING = PADDING_LAYERS__PADDING;
+
+ /**
+ * The number of structural features of the '<em>Constant Pad1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD1D_FEATURE_COUNT = PADDING_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Constant Pad1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD1D_OPERATION_COUNT = PADDING_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ConstantPad2dImpl <em>Constant Pad2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ConstantPad2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getConstantPad2d()
+ * @generated
+ */
+ int CONSTANT_PAD2D = 8;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD2D__BASE_CLASS = PADDING_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD2D__NAME = PADDING_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD2D__DATA = PADDING_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD2D__REQUIRES_GRAD = PADDING_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD2D__SUB_MODULE = PADDING_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD2D__OPTIMIZER = PADDING_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD2D__LOSS = PADDING_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD2D__PADDING = PADDING_LAYERS__PADDING;
+
+ /**
+ * The number of structural features of the '<em>Constant Pad2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD2D_FEATURE_COUNT = PADDING_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Constant Pad2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD2D_OPERATION_COUNT = PADDING_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ConstantPad3dImpl <em>Constant Pad3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ConstantPad3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getConstantPad3d()
+ * @generated
+ */
+ int CONSTANT_PAD3D = 9;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD3D__BASE_CLASS = PADDING_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD3D__NAME = PADDING_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD3D__DATA = PADDING_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD3D__REQUIRES_GRAD = PADDING_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD3D__SUB_MODULE = PADDING_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD3D__OPTIMIZER = PADDING_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD3D__LOSS = PADDING_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD3D__PADDING = PADDING_LAYERS__PADDING;
+
+ /**
+ * The number of structural features of the '<em>Constant Pad3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD3D_FEATURE_COUNT = PADDING_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Constant Pad3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_PAD3D_OPERATION_COUNT = PADDING_LAYERS_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layers <em>Padding layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Padding layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layers
+ * @generated
+ */
+ EClass getPadding_layers();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layers#getPadding <em>Padding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Padding</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layers#getPadding()
+ * @see #getPadding_layers()
+ * @generated
+ */
+ EAttribute getPadding_layers_Padding();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReflectionPad1d <em>Reflection Pad1d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Reflection Pad1d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReflectionPad1d
+ * @generated
+ */
+ EClass getReflectionPad1d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReflectionPad2d <em>Reflection Pad2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Reflection Pad2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReflectionPad2d
+ * @generated
+ */
+ EClass getReflectionPad2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad1d <em>Replication Pad1d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Replication Pad1d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad1d
+ * @generated
+ */
+ EClass getReplicationPad1d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad2d <em>Replication Pad2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Replication Pad2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad2d
+ * @generated
+ */
+ EClass getReplicationPad2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad3d <em>Replication Pad3d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Replication Pad3d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad3d
+ * @generated
+ */
+ EClass getReplicationPad3d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ZeroPad2d <em>Zero Pad2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Zero Pad2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ZeroPad2d
+ * @generated
+ */
+ EClass getZeroPad2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad1d <em>Constant Pad1d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Constant Pad1d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad1d
+ * @generated
+ */
+ EClass getConstantPad1d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad2d <em>Constant Pad2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Constant Pad2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad2d
+ * @generated
+ */
+ EClass getConstantPad2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad3d <em>Constant Pad3d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Constant Pad3d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad3d
+ * @generated
+ */
+ EClass getConstantPad3d();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Padding_layersFactory getPadding_layersFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersImpl <em>Padding layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getPadding_layers()
+ * @generated
+ */
+ EClass PADDING_LAYERS = eINSTANCE.getPadding_layers();
+
+ /**
+ * The meta object literal for the '<em><b>Padding</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PADDING_LAYERS__PADDING = eINSTANCE.getPadding_layers_Padding();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReflectionPad1dImpl <em>Reflection Pad1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReflectionPad1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getReflectionPad1d()
+ * @generated
+ */
+ EClass REFLECTION_PAD1D = eINSTANCE.getReflectionPad1d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReflectionPad2dImpl <em>Reflection Pad2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReflectionPad2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getReflectionPad2d()
+ * @generated
+ */
+ EClass REFLECTION_PAD2D = eINSTANCE.getReflectionPad2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReplicationPad1dImpl <em>Replication Pad1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReplicationPad1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getReplicationPad1d()
+ * @generated
+ */
+ EClass REPLICATION_PAD1D = eINSTANCE.getReplicationPad1d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReplicationPad2dImpl <em>Replication Pad2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReplicationPad2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getReplicationPad2d()
+ * @generated
+ */
+ EClass REPLICATION_PAD2D = eINSTANCE.getReplicationPad2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReplicationPad3dImpl <em>Replication Pad3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ReplicationPad3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getReplicationPad3d()
+ * @generated
+ */
+ EClass REPLICATION_PAD3D = eINSTANCE.getReplicationPad3d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ZeroPad2dImpl <em>Zero Pad2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ZeroPad2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getZeroPad2d()
+ * @generated
+ */
+ EClass ZERO_PAD2D = eINSTANCE.getZeroPad2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ConstantPad1dImpl <em>Constant Pad1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ConstantPad1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getConstantPad1d()
+ * @generated
+ */
+ EClass CONSTANT_PAD1D = eINSTANCE.getConstantPad1d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ConstantPad2dImpl <em>Constant Pad2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ConstantPad2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getConstantPad2d()
+ * @generated
+ */
+ EClass CONSTANT_PAD2D = eINSTANCE.getConstantPad2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ConstantPad3dImpl <em>Constant Pad3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.ConstantPad3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl#getConstantPad3d()
+ * @generated
+ */
+ EClass CONSTANT_PAD3D = eINSTANCE.getConstantPad3d();
+
+ }
+
+} //Padding_layersPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReflectionPad1d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReflectionPad1d.java
new file mode 100644
index 0000000..7d12589
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReflectionPad1d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Reflection Pad1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage#getReflectionPad1d()
+ * @model
+ * @generated
+ */
+public interface ReflectionPad1d extends Padding_layers {
+} // ReflectionPad1d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReflectionPad2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReflectionPad2d.java
new file mode 100644
index 0000000..683cd91
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReflectionPad2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Reflection Pad2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage#getReflectionPad2d()
+ * @model
+ * @generated
+ */
+public interface ReflectionPad2d extends Padding_layers {
+} // ReflectionPad2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReplicationPad1d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReplicationPad1d.java
new file mode 100644
index 0000000..e3c25c2
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReplicationPad1d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Replication Pad1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage#getReplicationPad1d()
+ * @model
+ * @generated
+ */
+public interface ReplicationPad1d extends Padding_layers {
+} // ReplicationPad1d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReplicationPad2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReplicationPad2d.java
new file mode 100644
index 0000000..19d5f6d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReplicationPad2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Replication Pad2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage#getReplicationPad2d()
+ * @model
+ * @generated
+ */
+public interface ReplicationPad2d extends Padding_layers {
+} // ReplicationPad2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReplicationPad3d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReplicationPad3d.java
new file mode 100644
index 0000000..68c5c8a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ReplicationPad3d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Replication Pad3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage#getReplicationPad3d()
+ * @model
+ * @generated
+ */
+public interface ReplicationPad3d extends Padding_layers {
+} // ReplicationPad3d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ZeroPad2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ZeroPad2d.java
new file mode 100644
index 0000000..cf4ca6b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/ZeroPad2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Zero Pad2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage#getZeroPad2d()
+ * @model
+ * @generated
+ */
+public interface ZeroPad2d extends Padding_layers {
+} // ZeroPad2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ConstantPad1dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ConstantPad1dImpl.java
new file mode 100644
index 0000000..a18d322
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ConstantPad1dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Constant Pad1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ConstantPad1dImpl extends Padding_layersImpl implements ConstantPad1d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConstantPad1dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Padding_layersPackage.Literals.CONSTANT_PAD1D;
+ }
+
+} //ConstantPad1dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ConstantPad2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ConstantPad2dImpl.java
new file mode 100644
index 0000000..7a4fd95
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ConstantPad2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Constant Pad2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ConstantPad2dImpl extends Padding_layersImpl implements ConstantPad2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConstantPad2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Padding_layersPackage.Literals.CONSTANT_PAD2D;
+ }
+
+} //ConstantPad2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ConstantPad3dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ConstantPad3dImpl.java
new file mode 100644
index 0000000..65c2aa9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ConstantPad3dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Constant Pad3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ConstantPad3dImpl extends Padding_layersImpl implements ConstantPad3d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConstantPad3dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Padding_layersPackage.Literals.CONSTANT_PAD3D;
+ }
+
+} //ConstantPad3dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/Padding_layersFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/Padding_layersFactoryImpl.java
new file mode 100644
index 0000000..718b914
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/Padding_layersFactoryImpl.java
@@ -0,0 +1,202 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Padding_layersFactoryImpl extends EFactoryImpl implements Padding_layersFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Padding_layersFactory init() {
+ try {
+ Padding_layersFactory thePadding_layersFactory = (Padding_layersFactory)EPackage.Registry.INSTANCE.getEFactory(Padding_layersPackage.eNS_URI);
+ if (thePadding_layersFactory != null) {
+ return thePadding_layersFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Padding_layersFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Padding_layersFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Padding_layersPackage.REFLECTION_PAD1D: return createReflectionPad1d();
+ case Padding_layersPackage.REFLECTION_PAD2D: return createReflectionPad2d();
+ case Padding_layersPackage.REPLICATION_PAD1D: return createReplicationPad1d();
+ case Padding_layersPackage.REPLICATION_PAD2D: return createReplicationPad2d();
+ case Padding_layersPackage.REPLICATION_PAD3D: return createReplicationPad3d();
+ case Padding_layersPackage.ZERO_PAD2D: return createZeroPad2d();
+ case Padding_layersPackage.CONSTANT_PAD1D: return createConstantPad1d();
+ case Padding_layersPackage.CONSTANT_PAD2D: return createConstantPad2d();
+ case Padding_layersPackage.CONSTANT_PAD3D: return createConstantPad3d();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ReflectionPad1d createReflectionPad1d() {
+ ReflectionPad1dImpl reflectionPad1d = new ReflectionPad1dImpl();
+ return reflectionPad1d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ReflectionPad2d createReflectionPad2d() {
+ ReflectionPad2dImpl reflectionPad2d = new ReflectionPad2dImpl();
+ return reflectionPad2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ReplicationPad1d createReplicationPad1d() {
+ ReplicationPad1dImpl replicationPad1d = new ReplicationPad1dImpl();
+ return replicationPad1d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ReplicationPad2d createReplicationPad2d() {
+ ReplicationPad2dImpl replicationPad2d = new ReplicationPad2dImpl();
+ return replicationPad2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ReplicationPad3d createReplicationPad3d() {
+ ReplicationPad3dImpl replicationPad3d = new ReplicationPad3dImpl();
+ return replicationPad3d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ZeroPad2d createZeroPad2d() {
+ ZeroPad2dImpl zeroPad2d = new ZeroPad2dImpl();
+ return zeroPad2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ConstantPad1d createConstantPad1d() {
+ ConstantPad1dImpl constantPad1d = new ConstantPad1dImpl();
+ return constantPad1d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ConstantPad2d createConstantPad2d() {
+ ConstantPad2dImpl constantPad2d = new ConstantPad2dImpl();
+ return constantPad2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ConstantPad3d createConstantPad3d() {
+ ConstantPad3dImpl constantPad3d = new ConstantPad3dImpl();
+ return constantPad3d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Padding_layersPackage getPadding_layersPackage() {
+ return (Padding_layersPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Padding_layersPackage getPackage() {
+ return Padding_layersPackage.eINSTANCE;
+ }
+
+} //Padding_layersFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/Padding_layersImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/Padding_layersImpl.java
new file mode 100644
index 0000000..ab0252f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/Padding_layersImpl.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Padding layers</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersImpl#getPadding <em>Padding</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Padding_layersImpl extends ModelImpl implements Padding_layers {
+ /**
+ * The cached value of the '{@link #getPadding() <em>Padding</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPadding()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> padding;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Padding_layersImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Padding_layersPackage.Literals.PADDING_LAYERS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getPadding() {
+ if (padding == null) {
+ padding = new EDataTypeUniqueEList<Integer>(Integer.class, this, Padding_layersPackage.PADDING_LAYERS__PADDING);
+ }
+ return padding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Padding_layersPackage.PADDING_LAYERS__PADDING:
+ return getPadding();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Padding_layersPackage.PADDING_LAYERS__PADDING:
+ getPadding().clear();
+ getPadding().addAll((Collection<? extends Integer>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Padding_layersPackage.PADDING_LAYERS__PADDING:
+ getPadding().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Padding_layersPackage.PADDING_LAYERS__PADDING:
+ return padding != null && !padding.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (padding: "); //$NON-NLS-1$
+ result.append(padding);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Padding_layersImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/Padding_layersPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/Padding_layersPackageImpl.java
new file mode 100644
index 0000000..3ecad75
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/Padding_layersPackageImpl.java
@@ -0,0 +1,578 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReflectionPad1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReflectionPad2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ZeroPad2d;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Padding_layersPackageImpl extends EPackageImpl implements Padding_layersPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass padding_layersEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass reflectionPad1dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass reflectionPad2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass replicationPad1dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass replicationPad2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass replicationPad3dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass zeroPad2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass constantPad1dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass constantPad2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass constantPad3dEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Padding_layersPackageImpl() {
+ super(eNS_URI, Padding_layersFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Padding_layersPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Padding_layersPackage init() {
+ if (isInited) return (Padding_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredPadding_layersPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = registeredPadding_layersPackage instanceof Padding_layersPackageImpl ? (Padding_layersPackageImpl)registeredPadding_layersPackage : new Padding_layersPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ thePadding_layersPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ thePadding_layersPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ thePadding_layersPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Padding_layersPackage.eNS_URI, thePadding_layersPackage);
+ return thePadding_layersPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPadding_layers() {
+ return padding_layersEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPadding_layers_Padding() {
+ return (EAttribute)padding_layersEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getReflectionPad1d() {
+ return reflectionPad1dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getReflectionPad2d() {
+ return reflectionPad2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getReplicationPad1d() {
+ return replicationPad1dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getReplicationPad2d() {
+ return replicationPad2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getReplicationPad3d() {
+ return replicationPad3dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getZeroPad2d() {
+ return zeroPad2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConstantPad1d() {
+ return constantPad1dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConstantPad2d() {
+ return constantPad2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getConstantPad3d() {
+ return constantPad3dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Padding_layersFactory getPadding_layersFactory() {
+ return (Padding_layersFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ padding_layersEClass = createEClass(PADDING_LAYERS);
+ createEAttribute(padding_layersEClass, PADDING_LAYERS__PADDING);
+
+ reflectionPad1dEClass = createEClass(REFLECTION_PAD1D);
+
+ reflectionPad2dEClass = createEClass(REFLECTION_PAD2D);
+
+ replicationPad1dEClass = createEClass(REPLICATION_PAD1D);
+
+ replicationPad2dEClass = createEClass(REPLICATION_PAD2D);
+
+ replicationPad3dEClass = createEClass(REPLICATION_PAD3D);
+
+ zeroPad2dEClass = createEClass(ZERO_PAD2D);
+
+ constantPad1dEClass = createEClass(CONSTANT_PAD1D);
+
+ constantPad2dEClass = createEClass(CONSTANT_PAD2D);
+
+ constantPad3dEClass = createEClass(CONSTANT_PAD3D);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ padding_layersEClass.getESuperTypes().add(theModulePackage.getModel());
+ reflectionPad1dEClass.getESuperTypes().add(this.getPadding_layers());
+ reflectionPad2dEClass.getESuperTypes().add(this.getPadding_layers());
+ replicationPad1dEClass.getESuperTypes().add(this.getPadding_layers());
+ replicationPad2dEClass.getESuperTypes().add(this.getPadding_layers());
+ replicationPad3dEClass.getESuperTypes().add(this.getPadding_layers());
+ zeroPad2dEClass.getESuperTypes().add(this.getPadding_layers());
+ constantPad1dEClass.getESuperTypes().add(this.getPadding_layers());
+ constantPad2dEClass.getESuperTypes().add(this.getPadding_layers());
+ constantPad3dEClass.getESuperTypes().add(this.getPadding_layers());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(padding_layersEClass, Padding_layers.class, "Padding_layers", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPadding_layers_Padding(), theTypesPackage.getInteger(), "padding", null, 0, -1, Padding_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(reflectionPad1dEClass, ReflectionPad1d.class, "ReflectionPad1d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(reflectionPad2dEClass, ReflectionPad2d.class, "ReflectionPad2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(replicationPad1dEClass, ReplicationPad1d.class, "ReplicationPad1d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(replicationPad2dEClass, ReplicationPad2d.class, "ReplicationPad2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(replicationPad3dEClass, ReplicationPad3d.class, "ReplicationPad3d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(zeroPad2dEClass, ZeroPad2d.class, "ZeroPad2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(constantPad1dEClass, ConstantPad1d.class, "ConstantPad1d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(constantPad2dEClass, ConstantPad2d.class, "ConstantPad2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(constantPad3dEClass, ConstantPad3d.class, "ConstantPad3d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ }
+
+} //Padding_layersPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReflectionPad1dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReflectionPad1dImpl.java
new file mode 100644
index 0000000..016611b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReflectionPad1dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReflectionPad1d;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Reflection Pad1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ReflectionPad1dImpl extends Padding_layersImpl implements ReflectionPad1d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReflectionPad1dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Padding_layersPackage.Literals.REFLECTION_PAD1D;
+ }
+
+} //ReflectionPad1dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReflectionPad2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReflectionPad2dImpl.java
new file mode 100644
index 0000000..71b1d0c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReflectionPad2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReflectionPad2d;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Reflection Pad2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ReflectionPad2dImpl extends Padding_layersImpl implements ReflectionPad2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReflectionPad2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Padding_layersPackage.Literals.REFLECTION_PAD2D;
+ }
+
+} //ReflectionPad2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReplicationPad1dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReplicationPad1dImpl.java
new file mode 100644
index 0000000..2976667
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReplicationPad1dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad1d;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Replication Pad1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ReplicationPad1dImpl extends Padding_layersImpl implements ReplicationPad1d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReplicationPad1dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Padding_layersPackage.Literals.REPLICATION_PAD1D;
+ }
+
+} //ReplicationPad1dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReplicationPad2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReplicationPad2dImpl.java
new file mode 100644
index 0000000..f958d83
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReplicationPad2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad2d;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Replication Pad2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ReplicationPad2dImpl extends Padding_layersImpl implements ReplicationPad2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReplicationPad2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Padding_layersPackage.Literals.REPLICATION_PAD2D;
+ }
+
+} //ReplicationPad2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReplicationPad3dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReplicationPad3dImpl.java
new file mode 100644
index 0000000..23add35
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ReplicationPad3dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad3d;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Replication Pad3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ReplicationPad3dImpl extends Padding_layersImpl implements ReplicationPad3d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReplicationPad3dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Padding_layersPackage.Literals.REPLICATION_PAD3D;
+ }
+
+} //ReplicationPad3dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ZeroPad2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ZeroPad2dImpl.java
new file mode 100644
index 0000000..8c09a58
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/impl/ZeroPad2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ZeroPad2d;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Zero Pad2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class ZeroPad2dImpl extends Padding_layersImpl implements ZeroPad2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ZeroPad2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Padding_layersPackage.Literals.ZERO_PAD2D;
+ }
+
+} //ZeroPad2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/util/Padding_layersAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/util/Padding_layersAdapterFactory.java
new file mode 100644
index 0000000..4a028ce
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/util/Padding_layersAdapterFactory.java
@@ -0,0 +1,309 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage
+ * @generated
+ */
+public class Padding_layersAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Padding_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Padding_layersAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Padding_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Padding_layersSwitch<Adapter> modelSwitch =
+ new Padding_layersSwitch<Adapter>() {
+ @Override
+ public Adapter casePadding_layers(Padding_layers object) {
+ return createPadding_layersAdapter();
+ }
+ @Override
+ public Adapter caseReflectionPad1d(ReflectionPad1d object) {
+ return createReflectionPad1dAdapter();
+ }
+ @Override
+ public Adapter caseReflectionPad2d(ReflectionPad2d object) {
+ return createReflectionPad2dAdapter();
+ }
+ @Override
+ public Adapter caseReplicationPad1d(ReplicationPad1d object) {
+ return createReplicationPad1dAdapter();
+ }
+ @Override
+ public Adapter caseReplicationPad2d(ReplicationPad2d object) {
+ return createReplicationPad2dAdapter();
+ }
+ @Override
+ public Adapter caseReplicationPad3d(ReplicationPad3d object) {
+ return createReplicationPad3dAdapter();
+ }
+ @Override
+ public Adapter caseZeroPad2d(ZeroPad2d object) {
+ return createZeroPad2dAdapter();
+ }
+ @Override
+ public Adapter caseConstantPad1d(ConstantPad1d object) {
+ return createConstantPad1dAdapter();
+ }
+ @Override
+ public Adapter caseConstantPad2d(ConstantPad2d object) {
+ return createConstantPad2dAdapter();
+ }
+ @Override
+ public Adapter caseConstantPad3d(ConstantPad3d object) {
+ return createConstantPad3dAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layers <em>Padding layers</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layers
+ * @generated
+ */
+ public Adapter createPadding_layersAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReflectionPad1d <em>Reflection Pad1d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReflectionPad1d
+ * @generated
+ */
+ public Adapter createReflectionPad1dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReflectionPad2d <em>Reflection Pad2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReflectionPad2d
+ * @generated
+ */
+ public Adapter createReflectionPad2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad1d <em>Replication Pad1d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad1d
+ * @generated
+ */
+ public Adapter createReplicationPad1dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad2d <em>Replication Pad2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad2d
+ * @generated
+ */
+ public Adapter createReplicationPad2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad3d <em>Replication Pad3d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ReplicationPad3d
+ * @generated
+ */
+ public Adapter createReplicationPad3dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ZeroPad2d <em>Zero Pad2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ZeroPad2d
+ * @generated
+ */
+ public Adapter createZeroPad2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad1d <em>Constant Pad1d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad1d
+ * @generated
+ */
+ public Adapter createConstantPad1dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad2d <em>Constant Pad2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad2d
+ * @generated
+ */
+ public Adapter createConstantPad2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad3d <em>Constant Pad3d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.ConstantPad3d
+ * @generated
+ */
+ public Adapter createConstantPad3dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Padding_layersAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/util/Padding_layersSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/util/Padding_layersSwitch.java
new file mode 100644
index 0000000..d1d2839
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Padding_layers/util/Padding_layersSwitch.java
@@ -0,0 +1,342 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage
+ * @generated
+ */
+public class Padding_layersSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Padding_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Padding_layersSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Padding_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Padding_layersPackage.PADDING_LAYERS: {
+ Padding_layers padding_layers = (Padding_layers)theEObject;
+ T result = casePadding_layers(padding_layers);
+ if (result == null) result = caseModel(padding_layers);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Padding_layersPackage.REFLECTION_PAD1D: {
+ ReflectionPad1d reflectionPad1d = (ReflectionPad1d)theEObject;
+ T result = caseReflectionPad1d(reflectionPad1d);
+ if (result == null) result = casePadding_layers(reflectionPad1d);
+ if (result == null) result = caseModel(reflectionPad1d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Padding_layersPackage.REFLECTION_PAD2D: {
+ ReflectionPad2d reflectionPad2d = (ReflectionPad2d)theEObject;
+ T result = caseReflectionPad2d(reflectionPad2d);
+ if (result == null) result = casePadding_layers(reflectionPad2d);
+ if (result == null) result = caseModel(reflectionPad2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Padding_layersPackage.REPLICATION_PAD1D: {
+ ReplicationPad1d replicationPad1d = (ReplicationPad1d)theEObject;
+ T result = caseReplicationPad1d(replicationPad1d);
+ if (result == null) result = casePadding_layers(replicationPad1d);
+ if (result == null) result = caseModel(replicationPad1d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Padding_layersPackage.REPLICATION_PAD2D: {
+ ReplicationPad2d replicationPad2d = (ReplicationPad2d)theEObject;
+ T result = caseReplicationPad2d(replicationPad2d);
+ if (result == null) result = casePadding_layers(replicationPad2d);
+ if (result == null) result = caseModel(replicationPad2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Padding_layersPackage.REPLICATION_PAD3D: {
+ ReplicationPad3d replicationPad3d = (ReplicationPad3d)theEObject;
+ T result = caseReplicationPad3d(replicationPad3d);
+ if (result == null) result = casePadding_layers(replicationPad3d);
+ if (result == null) result = caseModel(replicationPad3d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Padding_layersPackage.ZERO_PAD2D: {
+ ZeroPad2d zeroPad2d = (ZeroPad2d)theEObject;
+ T result = caseZeroPad2d(zeroPad2d);
+ if (result == null) result = casePadding_layers(zeroPad2d);
+ if (result == null) result = caseModel(zeroPad2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Padding_layersPackage.CONSTANT_PAD1D: {
+ ConstantPad1d constantPad1d = (ConstantPad1d)theEObject;
+ T result = caseConstantPad1d(constantPad1d);
+ if (result == null) result = casePadding_layers(constantPad1d);
+ if (result == null) result = caseModel(constantPad1d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Padding_layersPackage.CONSTANT_PAD2D: {
+ ConstantPad2d constantPad2d = (ConstantPad2d)theEObject;
+ T result = caseConstantPad2d(constantPad2d);
+ if (result == null) result = casePadding_layers(constantPad2d);
+ if (result == null) result = caseModel(constantPad2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Padding_layersPackage.CONSTANT_PAD3D: {
+ ConstantPad3d constantPad3d = (ConstantPad3d)theEObject;
+ T result = caseConstantPad3d(constantPad3d);
+ if (result == null) result = casePadding_layers(constantPad3d);
+ if (result == null) result = caseModel(constantPad3d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Padding layers</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Padding layers</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePadding_layers(Padding_layers object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Reflection Pad1d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Reflection Pad1d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseReflectionPad1d(ReflectionPad1d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Reflection Pad2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Reflection Pad2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseReflectionPad2d(ReflectionPad2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Replication Pad1d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Replication Pad1d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseReplicationPad1d(ReplicationPad1d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Replication Pad2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Replication Pad2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseReplicationPad2d(ReplicationPad2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Replication Pad3d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Replication Pad3d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseReplicationPad3d(ReplicationPad3d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Zero Pad2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Zero Pad2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseZeroPad2d(ZeroPad2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Constant Pad1d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Constant Pad1d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConstantPad1d(ConstantPad1d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Constant Pad2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Constant Pad2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConstantPad2d(ConstantPad2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Constant Pad3d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Constant Pad3d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConstantPad3d(ConstantPad3d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Padding_layersSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptativeMaxPool.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptativeMaxPool.java
new file mode 100644
index 0000000..a85d602
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptativeMaxPool.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Adaptative Max Pool</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool#isReturn_indices <em>Return indices</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getAdaptativeMaxPool()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AdaptativeMaxPool extends Pooling_layers_2 {
+ /**
+ * Returns the value of the '<em><b>Return indices</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Return indices</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Return indices</em>' attribute.
+ * @see #setReturn_indices(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getAdaptativeMaxPool_Return_indices()
+ * @model dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false"
+ * @generated
+ */
+ boolean isReturn_indices();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool#isReturn_indices <em>Return indices</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Return indices</em>' attribute.
+ * @see #isReturn_indices()
+ * @generated
+ */
+ void setReturn_indices(boolean value);
+
+} // AdaptativeMaxPool
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptativeMaxPool1d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptativeMaxPool1d.java
new file mode 100644
index 0000000..664e37e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptativeMaxPool1d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Adaptative Max Pool1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getAdaptativeMaxPool1d()
+ * @model
+ * @generated
+ */
+public interface AdaptativeMaxPool1d extends AdaptativeMaxPool {
+} // AdaptativeMaxPool1d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptativeMaxPool2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptativeMaxPool2d.java
new file mode 100644
index 0000000..e8b5499
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptativeMaxPool2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Adaptative Max Pool2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getAdaptativeMaxPool2d()
+ * @model
+ * @generated
+ */
+public interface AdaptativeMaxPool2d extends AdaptativeMaxPool {
+} // AdaptativeMaxPool2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptativeMaxPool3d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptativeMaxPool3d.java
new file mode 100644
index 0000000..2d3b038
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptativeMaxPool3d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Adaptative Max Pool3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getAdaptativeMaxPool3d()
+ * @model
+ * @generated
+ */
+public interface AdaptativeMaxPool3d extends AdaptativeMaxPool {
+} // AdaptativeMaxPool3d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptiveAvgPool1d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptiveAvgPool1d.java
new file mode 100644
index 0000000..ae590c4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptiveAvgPool1d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Adaptive Avg Pool1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getAdaptiveAvgPool1d()
+ * @model
+ * @generated
+ */
+public interface AdaptiveAvgPool1d extends Pooling_layers_2 {
+} // AdaptiveAvgPool1d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptiveAvgPool2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptiveAvgPool2d.java
new file mode 100644
index 0000000..b9c1f9d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptiveAvgPool2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Adaptive Avg Pool2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getAdaptiveAvgPool2d()
+ * @model
+ * @generated
+ */
+public interface AdaptiveAvgPool2d extends Pooling_layers_2 {
+} // AdaptiveAvgPool2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptiveAvgPool3d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptiveAvgPool3d.java
new file mode 100644
index 0000000..8b3c9b5
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AdaptiveAvgPool3d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Adaptive Avg Pool3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getAdaptiveAvgPool3d()
+ * @model
+ * @generated
+ */
+public interface AdaptiveAvgPool3d extends Pooling_layers_2 {
+} // AdaptiveAvgPool3d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AvgPool1d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AvgPool1d.java
new file mode 100644
index 0000000..eda8e64
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AvgPool1d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Avg Pool1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getAvgPool1d()
+ * @model
+ * @generated
+ */
+public interface AvgPool1d extends Pooling_layers_1_1_2_1 {
+} // AvgPool1d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AvgPool2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AvgPool2d.java
new file mode 100644
index 0000000..1fad2f0
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AvgPool2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Avg Pool2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getAvgPool2d()
+ * @model
+ * @generated
+ */
+public interface AvgPool2d extends AvgPool2d3d {
+} // AvgPool2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AvgPool2d3d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AvgPool2d3d.java
new file mode 100644
index 0000000..0753bd8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AvgPool2d3d.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Avg Pool2d3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d3d#getDivisor_override <em>Divisor override</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getAvgPool2d3d()
+ * @model abstract="true"
+ * annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='AvgPool2d/3d'"
+ * @generated
+ */
+public interface AvgPool2d3d extends Pooling_layers_1_1_2_1 {
+ /**
+ * Returns the value of the '<em><b>Divisor override</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Divisor override</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Divisor override</em>' attribute.
+ * @see #setDivisor_override(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getAvgPool2d3d_Divisor_override()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getDivisor_override();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d3d#getDivisor_override <em>Divisor override</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Divisor override</em>' attribute.
+ * @see #getDivisor_override()
+ * @generated
+ */
+ void setDivisor_override(int value);
+
+} // AvgPool2d3d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AvgPool3d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AvgPool3d.java
new file mode 100644
index 0000000..693fa6c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/AvgPool3d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Avg Pool3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getAvgPool3d()
+ * @model
+ * @generated
+ */
+public interface AvgPool3d extends AvgPool2d3d {
+} // AvgPool3d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/FractionalMaxPool2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/FractionalMaxPool2d.java
new file mode 100644
index 0000000..3046663
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/FractionalMaxPool2d.java
@@ -0,0 +1,93 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Fractional Max Pool2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d#getOutput_size <em>Output size</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d#getOutput_ratio <em>Output ratio</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d#isReturn_indices <em>Return indices</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getFractionalMaxPool2d()
+ * @model
+ * @generated
+ */
+public interface FractionalMaxPool2d extends Pooling_layers_1 {
+ /**
+ * Returns the value of the '<em><b>Output size</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output size</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output size</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getFractionalMaxPool2d_Output_size()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getOutput_size();
+
+ /**
+ * Returns the value of the '<em><b>Output ratio</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output ratio</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output ratio</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getFractionalMaxPool2d_Output_ratio()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getOutput_ratio();
+
+ /**
+ * Returns the value of the '<em><b>Return indices</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Return indices</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Return indices</em>' attribute.
+ * @see #setReturn_indices(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getFractionalMaxPool2d_Return_indices()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isReturn_indices();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d#isReturn_indices <em>Return indices</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Return indices</em>' attribute.
+ * @see #isReturn_indices()
+ * @generated
+ */
+ void setReturn_indices(boolean value);
+
+} // FractionalMaxPool2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/LPPool1d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/LPPool1d.java
new file mode 100644
index 0000000..795deeb
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/LPPool1d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>LP Pool1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getLPPool1d()
+ * @model
+ * @generated
+ */
+public interface LPPool1d extends Pooling_layers_1_1_2 {
+} // LPPool1d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/LPPool2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/LPPool2d.java
new file mode 100644
index 0000000..8296da0
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/LPPool2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>LP Pool2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getLPPool2d()
+ * @model
+ * @generated
+ */
+public interface LPPool2d extends Pooling_layers_1_1_2 {
+} // LPPool2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxPool.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxPool.java
new file mode 100644
index 0000000..9bb9b60
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxPool.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Max Pool</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool#getDilation <em>Dilation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool#isReturn_indices <em>Return indices</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getMaxPool()
+ * @model abstract="true"
+ * @generated
+ */
+public interface MaxPool extends Pooling_layers_1_1_1_1 {
+ /**
+ * Returns the value of the '<em><b>Dilation</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dilation</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dilation</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getMaxPool_Dilation()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getDilation();
+
+ /**
+ * Returns the value of the '<em><b>Return indices</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Return indices</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Return indices</em>' attribute.
+ * @see #setReturn_indices(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getMaxPool_Return_indices()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isReturn_indices();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool#isReturn_indices <em>Return indices</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Return indices</em>' attribute.
+ * @see #isReturn_indices()
+ * @generated
+ */
+ void setReturn_indices(boolean value);
+
+} // MaxPool
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxPool1d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxPool1d.java
new file mode 100644
index 0000000..0231375
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxPool1d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Max Pool1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getMaxPool1d()
+ * @model
+ * @generated
+ */
+public interface MaxPool1d extends MaxPool {
+} // MaxPool1d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxPool2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxPool2d.java
new file mode 100644
index 0000000..5bb51f8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxPool2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Max Pool2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getMaxPool2d()
+ * @model
+ * @generated
+ */
+public interface MaxPool2d extends MaxPool {
+} // MaxPool2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxPool3d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxPool3d.java
new file mode 100644
index 0000000..fff7781
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxPool3d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Max Pool3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getMaxPool3d()
+ * @model
+ * @generated
+ */
+public interface MaxPool3d extends MaxPool {
+} // MaxPool3d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxUnpool1d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxUnpool1d.java
new file mode 100644
index 0000000..e8aadc2
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxUnpool1d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Max Unpool1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getMaxUnpool1d()
+ * @model
+ * @generated
+ */
+public interface MaxUnpool1d extends Pooling_layers_1_1_1 {
+} // MaxUnpool1d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxUnpool2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxUnpool2d.java
new file mode 100644
index 0000000..4b47340
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxUnpool2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Max Unpool2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getMaxUnpool2d()
+ * @model
+ * @generated
+ */
+public interface MaxUnpool2d extends Pooling_layers_1_1_1 {
+} // MaxUnpool2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxUnpool3d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxUnpool3d.java
new file mode 100644
index 0000000..aff2a32
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/MaxUnpool3d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Max Unpool3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getMaxUnpool3d()
+ * @model
+ * @generated
+ */
+public interface MaxUnpool3d extends Pooling_layers_1_1_1 {
+} // MaxUnpool3d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers.java
new file mode 100644
index 0000000..b513681
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Pooling layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Pooling_layers extends Model {
+} // Pooling_layers
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layersFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layersFactory.java
new file mode 100644
index 0000000..2ff8b92
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layersFactory.java
@@ -0,0 +1,204 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage
+ * @generated
+ */
+public interface Pooling_layersFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Pooling_layersFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Adaptative Max Pool1d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Adaptative Max Pool1d</em>'.
+ * @generated
+ */
+ AdaptativeMaxPool1d createAdaptativeMaxPool1d();
+
+ /**
+ * Returns a new object of class '<em>Adaptative Max Pool2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Adaptative Max Pool2d</em>'.
+ * @generated
+ */
+ AdaptativeMaxPool2d createAdaptativeMaxPool2d();
+
+ /**
+ * Returns a new object of class '<em>Adaptative Max Pool3d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Adaptative Max Pool3d</em>'.
+ * @generated
+ */
+ AdaptativeMaxPool3d createAdaptativeMaxPool3d();
+
+ /**
+ * Returns a new object of class '<em>Adaptive Avg Pool3d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Adaptive Avg Pool3d</em>'.
+ * @generated
+ */
+ AdaptiveAvgPool3d createAdaptiveAvgPool3d();
+
+ /**
+ * Returns a new object of class '<em>Adaptive Avg Pool2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Adaptive Avg Pool2d</em>'.
+ * @generated
+ */
+ AdaptiveAvgPool2d createAdaptiveAvgPool2d();
+
+ /**
+ * Returns a new object of class '<em>Adaptive Avg Pool1d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Adaptive Avg Pool1d</em>'.
+ * @generated
+ */
+ AdaptiveAvgPool1d createAdaptiveAvgPool1d();
+
+ /**
+ * Returns a new object of class '<em>Max Pool1d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Max Pool1d</em>'.
+ * @generated
+ */
+ MaxPool1d createMaxPool1d();
+
+ /**
+ * Returns a new object of class '<em>Max Unpool1d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Max Unpool1d</em>'.
+ * @generated
+ */
+ MaxUnpool1d createMaxUnpool1d();
+
+ /**
+ * Returns a new object of class '<em>Avg Pool1d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Avg Pool1d</em>'.
+ * @generated
+ */
+ AvgPool1d createAvgPool1d();
+
+ /**
+ * Returns a new object of class '<em>Max Unpool2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Max Unpool2d</em>'.
+ * @generated
+ */
+ MaxUnpool2d createMaxUnpool2d();
+
+ /**
+ * Returns a new object of class '<em>Max Unpool3d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Max Unpool3d</em>'.
+ * @generated
+ */
+ MaxUnpool3d createMaxUnpool3d();
+
+ /**
+ * Returns a new object of class '<em>LP Pool1d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>LP Pool1d</em>'.
+ * @generated
+ */
+ LPPool1d createLPPool1d();
+
+ /**
+ * Returns a new object of class '<em>LP Pool2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>LP Pool2d</em>'.
+ * @generated
+ */
+ LPPool2d createLPPool2d();
+
+ /**
+ * Returns a new object of class '<em>Avg Pool2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Avg Pool2d</em>'.
+ * @generated
+ */
+ AvgPool2d createAvgPool2d();
+
+ /**
+ * Returns a new object of class '<em>Avg Pool3d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Avg Pool3d</em>'.
+ * @generated
+ */
+ AvgPool3d createAvgPool3d();
+
+ /**
+ * Returns a new object of class '<em>Max Pool2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Max Pool2d</em>'.
+ * @generated
+ */
+ MaxPool2d createMaxPool2d();
+
+ /**
+ * Returns a new object of class '<em>Max Pool3d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Max Pool3d</em>'.
+ * @generated
+ */
+ MaxPool3d createMaxPool3d();
+
+ /**
+ * Returns a new object of class '<em>Fractional Max Pool2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Fractional Max Pool2d</em>'.
+ * @generated
+ */
+ FractionalMaxPool2d createFractionalMaxPool2d();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Pooling_layersPackage getPooling_layersPackage();
+
+} //Pooling_layersFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layersPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layersPackage.java
new file mode 100644
index 0000000..17dd226
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layersPackage.java
@@ -0,0 +1,4698 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Pooling_layersPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Pooling_layers"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/pooling/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Pooling_layers"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Pooling_layersPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersImpl <em>Pooling layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers()
+ * @generated
+ */
+ int POOLING_LAYERS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The number of structural features of the '<em>Pooling layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Pooling layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1Impl <em>Pooling layers 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers_1()
+ * @generated
+ */
+ int POOLING_LAYERS_1 = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1__BASE_CLASS = POOLING_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1__NAME = POOLING_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1__DATA = POOLING_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1__REQUIRES_GRAD = POOLING_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1__SUB_MODULE = POOLING_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1__OPTIMIZER = POOLING_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1__LOSS = POOLING_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1__KERNEL_SIZE = POOLING_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Pooling layers 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1_FEATURE_COUNT = POOLING_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Pooling layers 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1_OPERATION_COUNT = POOLING_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_2Impl <em>Pooling layers 2</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_2Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers_2()
+ * @generated
+ */
+ int POOLING_LAYERS_2 = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_2__BASE_CLASS = POOLING_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_2__NAME = POOLING_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_2__DATA = POOLING_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_2__REQUIRES_GRAD = POOLING_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_2__SUB_MODULE = POOLING_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_2__OPTIMIZER = POOLING_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_2__LOSS = POOLING_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Output size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_2__OUTPUT_SIZE = POOLING_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Pooling layers 2</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_2_FEATURE_COUNT = POOLING_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Pooling layers 2</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_2_OPERATION_COUNT = POOLING_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPoolImpl <em>Adaptative Max Pool</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPoolImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAdaptativeMaxPool()
+ * @generated
+ */
+ int ADAPTATIVE_MAX_POOL = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL__BASE_CLASS = POOLING_LAYERS_2__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL__NAME = POOLING_LAYERS_2__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL__DATA = POOLING_LAYERS_2__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL__REQUIRES_GRAD = POOLING_LAYERS_2__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL__SUB_MODULE = POOLING_LAYERS_2__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL__OPTIMIZER = POOLING_LAYERS_2__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL__LOSS = POOLING_LAYERS_2__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Output size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL__OUTPUT_SIZE = POOLING_LAYERS_2__OUTPUT_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Return indices</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL__RETURN_INDICES = POOLING_LAYERS_2_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Adaptative Max Pool</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL_FEATURE_COUNT = POOLING_LAYERS_2_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Adaptative Max Pool</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL_OPERATION_COUNT = POOLING_LAYERS_2_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPool1dImpl <em>Adaptative Max Pool1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPool1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAdaptativeMaxPool1d()
+ * @generated
+ */
+ int ADAPTATIVE_MAX_POOL1D = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL1D__BASE_CLASS = ADAPTATIVE_MAX_POOL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL1D__NAME = ADAPTATIVE_MAX_POOL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL1D__DATA = ADAPTATIVE_MAX_POOL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL1D__REQUIRES_GRAD = ADAPTATIVE_MAX_POOL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL1D__SUB_MODULE = ADAPTATIVE_MAX_POOL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL1D__OPTIMIZER = ADAPTATIVE_MAX_POOL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL1D__LOSS = ADAPTATIVE_MAX_POOL__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Output size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL1D__OUTPUT_SIZE = ADAPTATIVE_MAX_POOL__OUTPUT_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Return indices</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL1D__RETURN_INDICES = ADAPTATIVE_MAX_POOL__RETURN_INDICES;
+
+ /**
+ * The number of structural features of the '<em>Adaptative Max Pool1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL1D_FEATURE_COUNT = ADAPTATIVE_MAX_POOL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Adaptative Max Pool1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL1D_OPERATION_COUNT = ADAPTATIVE_MAX_POOL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPool2dImpl <em>Adaptative Max Pool2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPool2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAdaptativeMaxPool2d()
+ * @generated
+ */
+ int ADAPTATIVE_MAX_POOL2D = 5;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL2D__BASE_CLASS = ADAPTATIVE_MAX_POOL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL2D__NAME = ADAPTATIVE_MAX_POOL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL2D__DATA = ADAPTATIVE_MAX_POOL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL2D__REQUIRES_GRAD = ADAPTATIVE_MAX_POOL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL2D__SUB_MODULE = ADAPTATIVE_MAX_POOL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL2D__OPTIMIZER = ADAPTATIVE_MAX_POOL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL2D__LOSS = ADAPTATIVE_MAX_POOL__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Output size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL2D__OUTPUT_SIZE = ADAPTATIVE_MAX_POOL__OUTPUT_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Return indices</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL2D__RETURN_INDICES = ADAPTATIVE_MAX_POOL__RETURN_INDICES;
+
+ /**
+ * The number of structural features of the '<em>Adaptative Max Pool2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL2D_FEATURE_COUNT = ADAPTATIVE_MAX_POOL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Adaptative Max Pool2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL2D_OPERATION_COUNT = ADAPTATIVE_MAX_POOL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPool3dImpl <em>Adaptative Max Pool3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPool3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAdaptativeMaxPool3d()
+ * @generated
+ */
+ int ADAPTATIVE_MAX_POOL3D = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL3D__BASE_CLASS = ADAPTATIVE_MAX_POOL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL3D__NAME = ADAPTATIVE_MAX_POOL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL3D__DATA = ADAPTATIVE_MAX_POOL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL3D__REQUIRES_GRAD = ADAPTATIVE_MAX_POOL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL3D__SUB_MODULE = ADAPTATIVE_MAX_POOL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL3D__OPTIMIZER = ADAPTATIVE_MAX_POOL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL3D__LOSS = ADAPTATIVE_MAX_POOL__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Output size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL3D__OUTPUT_SIZE = ADAPTATIVE_MAX_POOL__OUTPUT_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Return indices</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL3D__RETURN_INDICES = ADAPTATIVE_MAX_POOL__RETURN_INDICES;
+
+ /**
+ * The number of structural features of the '<em>Adaptative Max Pool3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL3D_FEATURE_COUNT = ADAPTATIVE_MAX_POOL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Adaptative Max Pool3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTATIVE_MAX_POOL3D_OPERATION_COUNT = ADAPTATIVE_MAX_POOL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptiveAvgPool3dImpl <em>Adaptive Avg Pool3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptiveAvgPool3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAdaptiveAvgPool3d()
+ * @generated
+ */
+ int ADAPTIVE_AVG_POOL3D = 7;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL3D__BASE_CLASS = POOLING_LAYERS_2__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL3D__NAME = POOLING_LAYERS_2__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL3D__DATA = POOLING_LAYERS_2__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL3D__REQUIRES_GRAD = POOLING_LAYERS_2__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL3D__SUB_MODULE = POOLING_LAYERS_2__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL3D__OPTIMIZER = POOLING_LAYERS_2__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL3D__LOSS = POOLING_LAYERS_2__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Output size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL3D__OUTPUT_SIZE = POOLING_LAYERS_2__OUTPUT_SIZE;
+
+ /**
+ * The number of structural features of the '<em>Adaptive Avg Pool3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL3D_FEATURE_COUNT = POOLING_LAYERS_2_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Adaptive Avg Pool3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL3D_OPERATION_COUNT = POOLING_LAYERS_2_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptiveAvgPool2dImpl <em>Adaptive Avg Pool2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptiveAvgPool2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAdaptiveAvgPool2d()
+ * @generated
+ */
+ int ADAPTIVE_AVG_POOL2D = 8;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL2D__BASE_CLASS = POOLING_LAYERS_2__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL2D__NAME = POOLING_LAYERS_2__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL2D__DATA = POOLING_LAYERS_2__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL2D__REQUIRES_GRAD = POOLING_LAYERS_2__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL2D__SUB_MODULE = POOLING_LAYERS_2__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL2D__OPTIMIZER = POOLING_LAYERS_2__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL2D__LOSS = POOLING_LAYERS_2__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Output size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL2D__OUTPUT_SIZE = POOLING_LAYERS_2__OUTPUT_SIZE;
+
+ /**
+ * The number of structural features of the '<em>Adaptive Avg Pool2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL2D_FEATURE_COUNT = POOLING_LAYERS_2_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Adaptive Avg Pool2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL2D_OPERATION_COUNT = POOLING_LAYERS_2_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptiveAvgPool1dImpl <em>Adaptive Avg Pool1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptiveAvgPool1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAdaptiveAvgPool1d()
+ * @generated
+ */
+ int ADAPTIVE_AVG_POOL1D = 9;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL1D__BASE_CLASS = POOLING_LAYERS_2__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL1D__NAME = POOLING_LAYERS_2__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL1D__DATA = POOLING_LAYERS_2__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL1D__REQUIRES_GRAD = POOLING_LAYERS_2__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL1D__SUB_MODULE = POOLING_LAYERS_2__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL1D__OPTIMIZER = POOLING_LAYERS_2__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL1D__LOSS = POOLING_LAYERS_2__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Output size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL1D__OUTPUT_SIZE = POOLING_LAYERS_2__OUTPUT_SIZE;
+
+ /**
+ * The number of structural features of the '<em>Adaptive Avg Pool1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL1D_FEATURE_COUNT = POOLING_LAYERS_2_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Adaptive Avg Pool1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_AVG_POOL1D_OPERATION_COUNT = POOLING_LAYERS_2_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1Impl <em>Pooling layers 11</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers_1_1()
+ * @generated
+ */
+ int POOLING_LAYERS_11 = 10;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_11__BASE_CLASS = POOLING_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_11__NAME = POOLING_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_11__DATA = POOLING_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_11__REQUIRES_GRAD = POOLING_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_11__SUB_MODULE = POOLING_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_11__OPTIMIZER = POOLING_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_11__LOSS = POOLING_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_11__KERNEL_SIZE = POOLING_LAYERS_1__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_11__STRIDE = POOLING_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Pooling layers 11</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_11_FEATURE_COUNT = POOLING_LAYERS_1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Pooling layers 11</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_11_OPERATION_COUNT = POOLING_LAYERS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_1Impl <em>Pooling layers 111</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers_1_1_1()
+ * @generated
+ */
+ int POOLING_LAYERS_111 = 14;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_111__BASE_CLASS = POOLING_LAYERS_11__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_111__NAME = POOLING_LAYERS_11__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_111__DATA = POOLING_LAYERS_11__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_111__REQUIRES_GRAD = POOLING_LAYERS_11__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_111__SUB_MODULE = POOLING_LAYERS_11__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_111__OPTIMIZER = POOLING_LAYERS_11__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_111__LOSS = POOLING_LAYERS_11__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_111__KERNEL_SIZE = POOLING_LAYERS_11__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_111__STRIDE = POOLING_LAYERS_11__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_111__PADDING = POOLING_LAYERS_11_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_111__PADDING_K = POOLING_LAYERS_11_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Pooling layers 111</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_111_FEATURE_COUNT = POOLING_LAYERS_11_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Pooling layers 111</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_111_OPERATION_COUNT = POOLING_LAYERS_11_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_1_1Impl <em>Pooling layers 1111</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_1_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers_1_1_1_1()
+ * @generated
+ */
+ int POOLING_LAYERS_1111 = 13;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111__BASE_CLASS = POOLING_LAYERS_111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111__NAME = POOLING_LAYERS_111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111__DATA = POOLING_LAYERS_111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111__REQUIRES_GRAD = POOLING_LAYERS_111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111__SUB_MODULE = POOLING_LAYERS_111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111__OPTIMIZER = POOLING_LAYERS_111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111__LOSS = POOLING_LAYERS_111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111__KERNEL_SIZE = POOLING_LAYERS_111__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111__STRIDE = POOLING_LAYERS_111__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111__PADDING = POOLING_LAYERS_111__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111__PADDING_K = POOLING_LAYERS_111__PADDING_K;
+
+ /**
+ * The feature id for the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111__CEIL_MODE = POOLING_LAYERS_111_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Pool size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111__POOL_SIZE = POOLING_LAYERS_111_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Pooling layers 1111</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111_FEATURE_COUNT = POOLING_LAYERS_111_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Pooling layers 1111</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1111_OPERATION_COUNT = POOLING_LAYERS_111_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPoolImpl <em>Max Pool</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPoolImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getMaxPool()
+ * @generated
+ */
+ int MAX_POOL = 12;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__BASE_CLASS = POOLING_LAYERS_1111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__NAME = POOLING_LAYERS_1111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__DATA = POOLING_LAYERS_1111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__REQUIRES_GRAD = POOLING_LAYERS_1111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__SUB_MODULE = POOLING_LAYERS_1111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__OPTIMIZER = POOLING_LAYERS_1111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__LOSS = POOLING_LAYERS_1111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__KERNEL_SIZE = POOLING_LAYERS_1111__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__STRIDE = POOLING_LAYERS_1111__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__PADDING = POOLING_LAYERS_1111__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__PADDING_K = POOLING_LAYERS_1111__PADDING_K;
+
+ /**
+ * The feature id for the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__CEIL_MODE = POOLING_LAYERS_1111__CEIL_MODE;
+
+ /**
+ * The feature id for the '<em><b>Pool size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__POOL_SIZE = POOLING_LAYERS_1111__POOL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__DILATION = POOLING_LAYERS_1111_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Return indices</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL__RETURN_INDICES = POOLING_LAYERS_1111_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Max Pool</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL_FEATURE_COUNT = POOLING_LAYERS_1111_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Max Pool</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL_OPERATION_COUNT = POOLING_LAYERS_1111_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPool1dImpl <em>Max Pool1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPool1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getMaxPool1d()
+ * @generated
+ */
+ int MAX_POOL1D = 11;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__BASE_CLASS = MAX_POOL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__NAME = MAX_POOL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__DATA = MAX_POOL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__REQUIRES_GRAD = MAX_POOL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__SUB_MODULE = MAX_POOL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__OPTIMIZER = MAX_POOL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__LOSS = MAX_POOL__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__KERNEL_SIZE = MAX_POOL__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__STRIDE = MAX_POOL__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__PADDING = MAX_POOL__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__PADDING_K = MAX_POOL__PADDING_K;
+
+ /**
+ * The feature id for the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__CEIL_MODE = MAX_POOL__CEIL_MODE;
+
+ /**
+ * The feature id for the '<em><b>Pool size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__POOL_SIZE = MAX_POOL__POOL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__DILATION = MAX_POOL__DILATION;
+
+ /**
+ * The feature id for the '<em><b>Return indices</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D__RETURN_INDICES = MAX_POOL__RETURN_INDICES;
+
+ /**
+ * The number of structural features of the '<em>Max Pool1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D_FEATURE_COUNT = MAX_POOL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Max Pool1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL1D_OPERATION_COUNT = MAX_POOL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxUnpool1dImpl <em>Max Unpool1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxUnpool1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getMaxUnpool1d()
+ * @generated
+ */
+ int MAX_UNPOOL1D = 15;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL1D__BASE_CLASS = POOLING_LAYERS_111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL1D__NAME = POOLING_LAYERS_111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL1D__DATA = POOLING_LAYERS_111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL1D__REQUIRES_GRAD = POOLING_LAYERS_111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL1D__SUB_MODULE = POOLING_LAYERS_111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL1D__OPTIMIZER = POOLING_LAYERS_111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL1D__LOSS = POOLING_LAYERS_111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL1D__KERNEL_SIZE = POOLING_LAYERS_111__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL1D__STRIDE = POOLING_LAYERS_111__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL1D__PADDING = POOLING_LAYERS_111__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL1D__PADDING_K = POOLING_LAYERS_111__PADDING_K;
+
+ /**
+ * The number of structural features of the '<em>Max Unpool1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL1D_FEATURE_COUNT = POOLING_LAYERS_111_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Max Unpool1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL1D_OPERATION_COUNT = POOLING_LAYERS_111_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_2_1Impl <em>Pooling layers 1121</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_2_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers_1_1_2_1()
+ * @generated
+ */
+ int POOLING_LAYERS_1121 = 17;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121__BASE_CLASS = POOLING_LAYERS_1111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121__NAME = POOLING_LAYERS_1111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121__DATA = POOLING_LAYERS_1111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121__REQUIRES_GRAD = POOLING_LAYERS_1111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121__SUB_MODULE = POOLING_LAYERS_1111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121__OPTIMIZER = POOLING_LAYERS_1111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121__LOSS = POOLING_LAYERS_1111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121__KERNEL_SIZE = POOLING_LAYERS_1111__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121__STRIDE = POOLING_LAYERS_1111__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121__PADDING = POOLING_LAYERS_1111__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121__PADDING_K = POOLING_LAYERS_1111__PADDING_K;
+
+ /**
+ * The feature id for the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121__CEIL_MODE = POOLING_LAYERS_1111__CEIL_MODE;
+
+ /**
+ * The feature id for the '<em><b>Pool size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121__POOL_SIZE = POOLING_LAYERS_1111__POOL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Count include pad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121__COUNT_INCLUDE_PAD = POOLING_LAYERS_1111_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Pooling layers 1121</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121_FEATURE_COUNT = POOLING_LAYERS_1111_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Pooling layers 1121</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_1121_OPERATION_COUNT = POOLING_LAYERS_1111_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool1dImpl <em>Avg Pool1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAvgPool1d()
+ * @generated
+ */
+ int AVG_POOL1D = 16;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D__BASE_CLASS = POOLING_LAYERS_1121__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D__NAME = POOLING_LAYERS_1121__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D__DATA = POOLING_LAYERS_1121__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D__REQUIRES_GRAD = POOLING_LAYERS_1121__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D__SUB_MODULE = POOLING_LAYERS_1121__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D__OPTIMIZER = POOLING_LAYERS_1121__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D__LOSS = POOLING_LAYERS_1121__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D__KERNEL_SIZE = POOLING_LAYERS_1121__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D__STRIDE = POOLING_LAYERS_1121__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D__PADDING = POOLING_LAYERS_1121__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D__PADDING_K = POOLING_LAYERS_1121__PADDING_K;
+
+ /**
+ * The feature id for the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D__CEIL_MODE = POOLING_LAYERS_1121__CEIL_MODE;
+
+ /**
+ * The feature id for the '<em><b>Pool size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D__POOL_SIZE = POOLING_LAYERS_1121__POOL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Count include pad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D__COUNT_INCLUDE_PAD = POOLING_LAYERS_1121__COUNT_INCLUDE_PAD;
+
+ /**
+ * The number of structural features of the '<em>Avg Pool1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D_FEATURE_COUNT = POOLING_LAYERS_1121_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Avg Pool1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL1D_OPERATION_COUNT = POOLING_LAYERS_1121_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxUnpool2dImpl <em>Max Unpool2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxUnpool2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getMaxUnpool2d()
+ * @generated
+ */
+ int MAX_UNPOOL2D = 18;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL2D__BASE_CLASS = POOLING_LAYERS_111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL2D__NAME = POOLING_LAYERS_111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL2D__DATA = POOLING_LAYERS_111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL2D__REQUIRES_GRAD = POOLING_LAYERS_111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL2D__SUB_MODULE = POOLING_LAYERS_111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL2D__OPTIMIZER = POOLING_LAYERS_111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL2D__LOSS = POOLING_LAYERS_111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL2D__KERNEL_SIZE = POOLING_LAYERS_111__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL2D__STRIDE = POOLING_LAYERS_111__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL2D__PADDING = POOLING_LAYERS_111__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL2D__PADDING_K = POOLING_LAYERS_111__PADDING_K;
+
+ /**
+ * The number of structural features of the '<em>Max Unpool2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL2D_FEATURE_COUNT = POOLING_LAYERS_111_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Max Unpool2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL2D_OPERATION_COUNT = POOLING_LAYERS_111_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxUnpool3dImpl <em>Max Unpool3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxUnpool3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getMaxUnpool3d()
+ * @generated
+ */
+ int MAX_UNPOOL3D = 19;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL3D__BASE_CLASS = POOLING_LAYERS_111__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL3D__NAME = POOLING_LAYERS_111__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL3D__DATA = POOLING_LAYERS_111__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL3D__REQUIRES_GRAD = POOLING_LAYERS_111__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL3D__SUB_MODULE = POOLING_LAYERS_111__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL3D__OPTIMIZER = POOLING_LAYERS_111__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL3D__LOSS = POOLING_LAYERS_111__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL3D__KERNEL_SIZE = POOLING_LAYERS_111__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL3D__STRIDE = POOLING_LAYERS_111__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL3D__PADDING = POOLING_LAYERS_111__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL3D__PADDING_K = POOLING_LAYERS_111__PADDING_K;
+
+ /**
+ * The number of structural features of the '<em>Max Unpool3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL3D_FEATURE_COUNT = POOLING_LAYERS_111_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Max Unpool3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_UNPOOL3D_OPERATION_COUNT = POOLING_LAYERS_111_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_2Impl <em>Pooling layers 112</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_2Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers_1_1_2()
+ * @generated
+ */
+ int POOLING_LAYERS_112 = 20;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_112__BASE_CLASS = POOLING_LAYERS_11__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_112__NAME = POOLING_LAYERS_11__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_112__DATA = POOLING_LAYERS_11__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_112__REQUIRES_GRAD = POOLING_LAYERS_11__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_112__SUB_MODULE = POOLING_LAYERS_11__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_112__OPTIMIZER = POOLING_LAYERS_11__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_112__LOSS = POOLING_LAYERS_11__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_112__KERNEL_SIZE = POOLING_LAYERS_11__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_112__STRIDE = POOLING_LAYERS_11__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_112__CEIL_MODE = POOLING_LAYERS_11_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Pooling layers 112</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_112_FEATURE_COUNT = POOLING_LAYERS_11_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Pooling layers 112</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int POOLING_LAYERS_112_OPERATION_COUNT = POOLING_LAYERS_11_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.LPPool1dImpl <em>LP Pool1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.LPPool1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getLPPool1d()
+ * @generated
+ */
+ int LP_POOL1D = 21;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL1D__BASE_CLASS = POOLING_LAYERS_112__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL1D__NAME = POOLING_LAYERS_112__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL1D__DATA = POOLING_LAYERS_112__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL1D__REQUIRES_GRAD = POOLING_LAYERS_112__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL1D__SUB_MODULE = POOLING_LAYERS_112__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL1D__OPTIMIZER = POOLING_LAYERS_112__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL1D__LOSS = POOLING_LAYERS_112__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL1D__KERNEL_SIZE = POOLING_LAYERS_112__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL1D__STRIDE = POOLING_LAYERS_112__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL1D__CEIL_MODE = POOLING_LAYERS_112__CEIL_MODE;
+
+ /**
+ * The number of structural features of the '<em>LP Pool1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL1D_FEATURE_COUNT = POOLING_LAYERS_112_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>LP Pool1d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL1D_OPERATION_COUNT = POOLING_LAYERS_112_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.LPPool2dImpl <em>LP Pool2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.LPPool2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getLPPool2d()
+ * @generated
+ */
+ int LP_POOL2D = 22;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL2D__BASE_CLASS = POOLING_LAYERS_112__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL2D__NAME = POOLING_LAYERS_112__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL2D__DATA = POOLING_LAYERS_112__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL2D__REQUIRES_GRAD = POOLING_LAYERS_112__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL2D__SUB_MODULE = POOLING_LAYERS_112__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL2D__OPTIMIZER = POOLING_LAYERS_112__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL2D__LOSS = POOLING_LAYERS_112__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL2D__KERNEL_SIZE = POOLING_LAYERS_112__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL2D__STRIDE = POOLING_LAYERS_112__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL2D__CEIL_MODE = POOLING_LAYERS_112__CEIL_MODE;
+
+ /**
+ * The number of structural features of the '<em>LP Pool2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL2D_FEATURE_COUNT = POOLING_LAYERS_112_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>LP Pool2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LP_POOL2D_OPERATION_COUNT = POOLING_LAYERS_112_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool2d3dImpl <em>Avg Pool2d3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool2d3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAvgPool2d3d()
+ * @generated
+ */
+ int AVG_POOL2D3D = 23;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__BASE_CLASS = POOLING_LAYERS_1121__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__NAME = POOLING_LAYERS_1121__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__DATA = POOLING_LAYERS_1121__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__REQUIRES_GRAD = POOLING_LAYERS_1121__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__SUB_MODULE = POOLING_LAYERS_1121__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__OPTIMIZER = POOLING_LAYERS_1121__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__LOSS = POOLING_LAYERS_1121__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__KERNEL_SIZE = POOLING_LAYERS_1121__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__STRIDE = POOLING_LAYERS_1121__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__PADDING = POOLING_LAYERS_1121__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__PADDING_K = POOLING_LAYERS_1121__PADDING_K;
+
+ /**
+ * The feature id for the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__CEIL_MODE = POOLING_LAYERS_1121__CEIL_MODE;
+
+ /**
+ * The feature id for the '<em><b>Pool size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__POOL_SIZE = POOLING_LAYERS_1121__POOL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Count include pad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__COUNT_INCLUDE_PAD = POOLING_LAYERS_1121__COUNT_INCLUDE_PAD;
+
+ /**
+ * The feature id for the '<em><b>Divisor override</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D__DIVISOR_OVERRIDE = POOLING_LAYERS_1121_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Avg Pool2d3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D_FEATURE_COUNT = POOLING_LAYERS_1121_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Avg Pool2d3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D3D_OPERATION_COUNT = POOLING_LAYERS_1121_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool2dImpl <em>Avg Pool2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAvgPool2d()
+ * @generated
+ */
+ int AVG_POOL2D = 24;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__BASE_CLASS = AVG_POOL2D3D__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__NAME = AVG_POOL2D3D__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__DATA = AVG_POOL2D3D__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__REQUIRES_GRAD = AVG_POOL2D3D__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__SUB_MODULE = AVG_POOL2D3D__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__OPTIMIZER = AVG_POOL2D3D__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__LOSS = AVG_POOL2D3D__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__KERNEL_SIZE = AVG_POOL2D3D__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__STRIDE = AVG_POOL2D3D__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__PADDING = AVG_POOL2D3D__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__PADDING_K = AVG_POOL2D3D__PADDING_K;
+
+ /**
+ * The feature id for the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__CEIL_MODE = AVG_POOL2D3D__CEIL_MODE;
+
+ /**
+ * The feature id for the '<em><b>Pool size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__POOL_SIZE = AVG_POOL2D3D__POOL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Count include pad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__COUNT_INCLUDE_PAD = AVG_POOL2D3D__COUNT_INCLUDE_PAD;
+
+ /**
+ * The feature id for the '<em><b>Divisor override</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D__DIVISOR_OVERRIDE = AVG_POOL2D3D__DIVISOR_OVERRIDE;
+
+ /**
+ * The number of structural features of the '<em>Avg Pool2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D_FEATURE_COUNT = AVG_POOL2D3D_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Avg Pool2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL2D_OPERATION_COUNT = AVG_POOL2D3D_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool3dImpl <em>Avg Pool3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAvgPool3d()
+ * @generated
+ */
+ int AVG_POOL3D = 25;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__BASE_CLASS = AVG_POOL2D3D__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__NAME = AVG_POOL2D3D__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__DATA = AVG_POOL2D3D__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__REQUIRES_GRAD = AVG_POOL2D3D__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__SUB_MODULE = AVG_POOL2D3D__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__OPTIMIZER = AVG_POOL2D3D__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__LOSS = AVG_POOL2D3D__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__KERNEL_SIZE = AVG_POOL2D3D__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__STRIDE = AVG_POOL2D3D__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__PADDING = AVG_POOL2D3D__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__PADDING_K = AVG_POOL2D3D__PADDING_K;
+
+ /**
+ * The feature id for the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__CEIL_MODE = AVG_POOL2D3D__CEIL_MODE;
+
+ /**
+ * The feature id for the '<em><b>Pool size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__POOL_SIZE = AVG_POOL2D3D__POOL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Count include pad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__COUNT_INCLUDE_PAD = AVG_POOL2D3D__COUNT_INCLUDE_PAD;
+
+ /**
+ * The feature id for the '<em><b>Divisor override</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D__DIVISOR_OVERRIDE = AVG_POOL2D3D__DIVISOR_OVERRIDE;
+
+ /**
+ * The number of structural features of the '<em>Avg Pool3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D_FEATURE_COUNT = AVG_POOL2D3D_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Avg Pool3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AVG_POOL3D_OPERATION_COUNT = AVG_POOL2D3D_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPool2dImpl <em>Max Pool2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPool2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getMaxPool2d()
+ * @generated
+ */
+ int MAX_POOL2D = 26;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__BASE_CLASS = MAX_POOL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__NAME = MAX_POOL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__DATA = MAX_POOL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__REQUIRES_GRAD = MAX_POOL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__SUB_MODULE = MAX_POOL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__OPTIMIZER = MAX_POOL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__LOSS = MAX_POOL__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__KERNEL_SIZE = MAX_POOL__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__STRIDE = MAX_POOL__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__PADDING = MAX_POOL__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__PADDING_K = MAX_POOL__PADDING_K;
+
+ /**
+ * The feature id for the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__CEIL_MODE = MAX_POOL__CEIL_MODE;
+
+ /**
+ * The feature id for the '<em><b>Pool size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__POOL_SIZE = MAX_POOL__POOL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__DILATION = MAX_POOL__DILATION;
+
+ /**
+ * The feature id for the '<em><b>Return indices</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D__RETURN_INDICES = MAX_POOL__RETURN_INDICES;
+
+ /**
+ * The number of structural features of the '<em>Max Pool2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D_FEATURE_COUNT = MAX_POOL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Max Pool2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL2D_OPERATION_COUNT = MAX_POOL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPool3dImpl <em>Max Pool3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPool3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getMaxPool3d()
+ * @generated
+ */
+ int MAX_POOL3D = 27;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__BASE_CLASS = MAX_POOL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__NAME = MAX_POOL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__DATA = MAX_POOL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__REQUIRES_GRAD = MAX_POOL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__SUB_MODULE = MAX_POOL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__OPTIMIZER = MAX_POOL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__LOSS = MAX_POOL__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__KERNEL_SIZE = MAX_POOL__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Stride</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__STRIDE = MAX_POOL__STRIDE;
+
+ /**
+ * The feature id for the '<em><b>Padding</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__PADDING = MAX_POOL__PADDING;
+
+ /**
+ * The feature id for the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__PADDING_K = MAX_POOL__PADDING_K;
+
+ /**
+ * The feature id for the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__CEIL_MODE = MAX_POOL__CEIL_MODE;
+
+ /**
+ * The feature id for the '<em><b>Pool size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__POOL_SIZE = MAX_POOL__POOL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Dilation</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__DILATION = MAX_POOL__DILATION;
+
+ /**
+ * The feature id for the '<em><b>Return indices</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D__RETURN_INDICES = MAX_POOL__RETURN_INDICES;
+
+ /**
+ * The number of structural features of the '<em>Max Pool3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D_FEATURE_COUNT = MAX_POOL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Max Pool3d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MAX_POOL3D_OPERATION_COUNT = MAX_POOL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.FractionalMaxPool2dImpl <em>Fractional Max Pool2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.FractionalMaxPool2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getFractionalMaxPool2d()
+ * @generated
+ */
+ int FRACTIONAL_MAX_POOL2D = 28;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRACTIONAL_MAX_POOL2D__BASE_CLASS = POOLING_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRACTIONAL_MAX_POOL2D__NAME = POOLING_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRACTIONAL_MAX_POOL2D__DATA = POOLING_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRACTIONAL_MAX_POOL2D__REQUIRES_GRAD = POOLING_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRACTIONAL_MAX_POOL2D__SUB_MODULE = POOLING_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRACTIONAL_MAX_POOL2D__OPTIMIZER = POOLING_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRACTIONAL_MAX_POOL2D__LOSS = POOLING_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Kernel size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRACTIONAL_MAX_POOL2D__KERNEL_SIZE = POOLING_LAYERS_1__KERNEL_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Output size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRACTIONAL_MAX_POOL2D__OUTPUT_SIZE = POOLING_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Output ratio</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRACTIONAL_MAX_POOL2D__OUTPUT_RATIO = POOLING_LAYERS_1_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Return indices</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRACTIONAL_MAX_POOL2D__RETURN_INDICES = POOLING_LAYERS_1_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Fractional Max Pool2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRACTIONAL_MAX_POOL2D_FEATURE_COUNT = POOLING_LAYERS_1_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the '<em>Fractional Max Pool2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FRACTIONAL_MAX_POOL2D_OPERATION_COUNT = POOLING_LAYERS_1_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers <em>Pooling layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Pooling layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers
+ * @generated
+ */
+ EClass getPooling_layers();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1 <em>Pooling layers 1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Pooling layers 1</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1
+ * @generated
+ */
+ EClass getPooling_layers_1();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1#getKernel_size <em>Kernel size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Kernel size</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1#getKernel_size()
+ * @see #getPooling_layers_1()
+ * @generated
+ */
+ EAttribute getPooling_layers_1_Kernel_size();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_2 <em>Pooling layers 2</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Pooling layers 2</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_2
+ * @generated
+ */
+ EClass getPooling_layers_2();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_2#getOutput_size <em>Output size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Output size</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_2#getOutput_size()
+ * @see #getPooling_layers_2()
+ * @generated
+ */
+ EAttribute getPooling_layers_2_Output_size();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool <em>Adaptative Max Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Adaptative Max Pool</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool
+ * @generated
+ */
+ EClass getAdaptativeMaxPool();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool#isReturn_indices <em>Return indices</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Return indices</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool#isReturn_indices()
+ * @see #getAdaptativeMaxPool()
+ * @generated
+ */
+ EAttribute getAdaptativeMaxPool_Return_indices();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool1d <em>Adaptative Max Pool1d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Adaptative Max Pool1d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool1d
+ * @generated
+ */
+ EClass getAdaptativeMaxPool1d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool2d <em>Adaptative Max Pool2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Adaptative Max Pool2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool2d
+ * @generated
+ */
+ EClass getAdaptativeMaxPool2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool3d <em>Adaptative Max Pool3d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Adaptative Max Pool3d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool3d
+ * @generated
+ */
+ EClass getAdaptativeMaxPool3d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool3d <em>Adaptive Avg Pool3d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Adaptive Avg Pool3d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool3d
+ * @generated
+ */
+ EClass getAdaptiveAvgPool3d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool2d <em>Adaptive Avg Pool2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Adaptive Avg Pool2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool2d
+ * @generated
+ */
+ EClass getAdaptiveAvgPool2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool1d <em>Adaptive Avg Pool1d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Adaptive Avg Pool1d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool1d
+ * @generated
+ */
+ EClass getAdaptiveAvgPool1d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1 <em>Pooling layers 11</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Pooling layers 11</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1
+ * @generated
+ */
+ EClass getPooling_layers_1_1();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1#getStride <em>Stride</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Stride</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1#getStride()
+ * @see #getPooling_layers_1_1()
+ * @generated
+ */
+ EAttribute getPooling_layers_1_1_Stride();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool1d <em>Max Pool1d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Max Pool1d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool1d
+ * @generated
+ */
+ EClass getMaxPool1d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool <em>Max Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Max Pool</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool
+ * @generated
+ */
+ EClass getMaxPool();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool#getDilation <em>Dilation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Dilation</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool#getDilation()
+ * @see #getMaxPool()
+ * @generated
+ */
+ EAttribute getMaxPool_Dilation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool#isReturn_indices <em>Return indices</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Return indices</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool#isReturn_indices()
+ * @see #getMaxPool()
+ * @generated
+ */
+ EAttribute getMaxPool_Return_indices();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1_1 <em>Pooling layers 1111</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Pooling layers 1111</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1_1
+ * @generated
+ */
+ EClass getPooling_layers_1_1_1_1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1_1#isCeil_mode <em>Ceil mode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Ceil mode</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1_1#isCeil_mode()
+ * @see #getPooling_layers_1_1_1_1()
+ * @generated
+ */
+ EAttribute getPooling_layers_1_1_1_1_Ceil_mode();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1_1#getPool_size <em>Pool size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Pool size</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1_1#getPool_size()
+ * @see #getPooling_layers_1_1_1_1()
+ * @generated
+ */
+ EAttribute getPooling_layers_1_1_1_1_Pool_size();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1 <em>Pooling layers 111</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Pooling layers 111</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1
+ * @generated
+ */
+ EClass getPooling_layers_1_1_1();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1#getPadding <em>Padding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Padding</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1#getPadding()
+ * @see #getPooling_layers_1_1_1()
+ * @generated
+ */
+ EAttribute getPooling_layers_1_1_1_Padding();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1#getPadding_k <em>Padding k</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Padding k</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1#getPadding_k()
+ * @see #getPooling_layers_1_1_1()
+ * @generated
+ */
+ EAttribute getPooling_layers_1_1_1_Padding_k();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool1d <em>Max Unpool1d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Max Unpool1d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool1d
+ * @generated
+ */
+ EClass getMaxUnpool1d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool1d <em>Avg Pool1d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Avg Pool1d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool1d
+ * @generated
+ */
+ EClass getAvgPool1d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2_1 <em>Pooling layers 1121</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Pooling layers 1121</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2_1
+ * @generated
+ */
+ EClass getPooling_layers_1_1_2_1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2_1#isCount_include_pad <em>Count include pad</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Count include pad</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2_1#isCount_include_pad()
+ * @see #getPooling_layers_1_1_2_1()
+ * @generated
+ */
+ EAttribute getPooling_layers_1_1_2_1_Count_include_pad();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool2d <em>Max Unpool2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Max Unpool2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool2d
+ * @generated
+ */
+ EClass getMaxUnpool2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool3d <em>Max Unpool3d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Max Unpool3d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool3d
+ * @generated
+ */
+ EClass getMaxUnpool3d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2 <em>Pooling layers 112</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Pooling layers 112</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2
+ * @generated
+ */
+ EClass getPooling_layers_1_1_2();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2#isCeil_mode <em>Ceil mode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Ceil mode</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2#isCeil_mode()
+ * @see #getPooling_layers_1_1_2()
+ * @generated
+ */
+ EAttribute getPooling_layers_1_1_2_Ceil_mode();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.LPPool1d <em>LP Pool1d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>LP Pool1d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.LPPool1d
+ * @generated
+ */
+ EClass getLPPool1d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.LPPool2d <em>LP Pool2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>LP Pool2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.LPPool2d
+ * @generated
+ */
+ EClass getLPPool2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d3d <em>Avg Pool2d3d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Avg Pool2d3d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d3d
+ * @generated
+ */
+ EClass getAvgPool2d3d();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d3d#getDivisor_override <em>Divisor override</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Divisor override</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d3d#getDivisor_override()
+ * @see #getAvgPool2d3d()
+ * @generated
+ */
+ EAttribute getAvgPool2d3d_Divisor_override();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d <em>Avg Pool2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Avg Pool2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d
+ * @generated
+ */
+ EClass getAvgPool2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool3d <em>Avg Pool3d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Avg Pool3d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool3d
+ * @generated
+ */
+ EClass getAvgPool3d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool2d <em>Max Pool2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Max Pool2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool2d
+ * @generated
+ */
+ EClass getMaxPool2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool3d <em>Max Pool3d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Max Pool3d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool3d
+ * @generated
+ */
+ EClass getMaxPool3d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d <em>Fractional Max Pool2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Fractional Max Pool2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d
+ * @generated
+ */
+ EClass getFractionalMaxPool2d();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d#getOutput_size <em>Output size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Output size</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d#getOutput_size()
+ * @see #getFractionalMaxPool2d()
+ * @generated
+ */
+ EAttribute getFractionalMaxPool2d_Output_size();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d#getOutput_ratio <em>Output ratio</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Output ratio</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d#getOutput_ratio()
+ * @see #getFractionalMaxPool2d()
+ * @generated
+ */
+ EAttribute getFractionalMaxPool2d_Output_ratio();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d#isReturn_indices <em>Return indices</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Return indices</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d#isReturn_indices()
+ * @see #getFractionalMaxPool2d()
+ * @generated
+ */
+ EAttribute getFractionalMaxPool2d_Return_indices();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Pooling_layersFactory getPooling_layersFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersImpl <em>Pooling layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers()
+ * @generated
+ */
+ EClass POOLING_LAYERS = eINSTANCE.getPooling_layers();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1Impl <em>Pooling layers 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers_1()
+ * @generated
+ */
+ EClass POOLING_LAYERS_1 = eINSTANCE.getPooling_layers_1();
+
+ /**
+ * The meta object literal for the '<em><b>Kernel size</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POOLING_LAYERS_1__KERNEL_SIZE = eINSTANCE.getPooling_layers_1_Kernel_size();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_2Impl <em>Pooling layers 2</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_2Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers_2()
+ * @generated
+ */
+ EClass POOLING_LAYERS_2 = eINSTANCE.getPooling_layers_2();
+
+ /**
+ * The meta object literal for the '<em><b>Output size</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POOLING_LAYERS_2__OUTPUT_SIZE = eINSTANCE.getPooling_layers_2_Output_size();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPoolImpl <em>Adaptative Max Pool</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPoolImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAdaptativeMaxPool()
+ * @generated
+ */
+ EClass ADAPTATIVE_MAX_POOL = eINSTANCE.getAdaptativeMaxPool();
+
+ /**
+ * The meta object literal for the '<em><b>Return indices</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADAPTATIVE_MAX_POOL__RETURN_INDICES = eINSTANCE.getAdaptativeMaxPool_Return_indices();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPool1dImpl <em>Adaptative Max Pool1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPool1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAdaptativeMaxPool1d()
+ * @generated
+ */
+ EClass ADAPTATIVE_MAX_POOL1D = eINSTANCE.getAdaptativeMaxPool1d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPool2dImpl <em>Adaptative Max Pool2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPool2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAdaptativeMaxPool2d()
+ * @generated
+ */
+ EClass ADAPTATIVE_MAX_POOL2D = eINSTANCE.getAdaptativeMaxPool2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPool3dImpl <em>Adaptative Max Pool3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPool3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAdaptativeMaxPool3d()
+ * @generated
+ */
+ EClass ADAPTATIVE_MAX_POOL3D = eINSTANCE.getAdaptativeMaxPool3d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptiveAvgPool3dImpl <em>Adaptive Avg Pool3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptiveAvgPool3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAdaptiveAvgPool3d()
+ * @generated
+ */
+ EClass ADAPTIVE_AVG_POOL3D = eINSTANCE.getAdaptiveAvgPool3d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptiveAvgPool2dImpl <em>Adaptive Avg Pool2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptiveAvgPool2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAdaptiveAvgPool2d()
+ * @generated
+ */
+ EClass ADAPTIVE_AVG_POOL2D = eINSTANCE.getAdaptiveAvgPool2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptiveAvgPool1dImpl <em>Adaptive Avg Pool1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptiveAvgPool1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAdaptiveAvgPool1d()
+ * @generated
+ */
+ EClass ADAPTIVE_AVG_POOL1D = eINSTANCE.getAdaptiveAvgPool1d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1Impl <em>Pooling layers 11</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers_1_1()
+ * @generated
+ */
+ EClass POOLING_LAYERS_11 = eINSTANCE.getPooling_layers_1_1();
+
+ /**
+ * The meta object literal for the '<em><b>Stride</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POOLING_LAYERS_11__STRIDE = eINSTANCE.getPooling_layers_1_1_Stride();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPool1dImpl <em>Max Pool1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPool1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getMaxPool1d()
+ * @generated
+ */
+ EClass MAX_POOL1D = eINSTANCE.getMaxPool1d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPoolImpl <em>Max Pool</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPoolImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getMaxPool()
+ * @generated
+ */
+ EClass MAX_POOL = eINSTANCE.getMaxPool();
+
+ /**
+ * The meta object literal for the '<em><b>Dilation</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MAX_POOL__DILATION = eINSTANCE.getMaxPool_Dilation();
+
+ /**
+ * The meta object literal for the '<em><b>Return indices</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MAX_POOL__RETURN_INDICES = eINSTANCE.getMaxPool_Return_indices();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_1_1Impl <em>Pooling layers 1111</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_1_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers_1_1_1_1()
+ * @generated
+ */
+ EClass POOLING_LAYERS_1111 = eINSTANCE.getPooling_layers_1_1_1_1();
+
+ /**
+ * The meta object literal for the '<em><b>Ceil mode</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POOLING_LAYERS_1111__CEIL_MODE = eINSTANCE.getPooling_layers_1_1_1_1_Ceil_mode();
+
+ /**
+ * The meta object literal for the '<em><b>Pool size</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POOLING_LAYERS_1111__POOL_SIZE = eINSTANCE.getPooling_layers_1_1_1_1_Pool_size();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_1Impl <em>Pooling layers 111</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers_1_1_1()
+ * @generated
+ */
+ EClass POOLING_LAYERS_111 = eINSTANCE.getPooling_layers_1_1_1();
+
+ /**
+ * The meta object literal for the '<em><b>Padding</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POOLING_LAYERS_111__PADDING = eINSTANCE.getPooling_layers_1_1_1_Padding();
+
+ /**
+ * The meta object literal for the '<em><b>Padding k</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POOLING_LAYERS_111__PADDING_K = eINSTANCE.getPooling_layers_1_1_1_Padding_k();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxUnpool1dImpl <em>Max Unpool1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxUnpool1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getMaxUnpool1d()
+ * @generated
+ */
+ EClass MAX_UNPOOL1D = eINSTANCE.getMaxUnpool1d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool1dImpl <em>Avg Pool1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAvgPool1d()
+ * @generated
+ */
+ EClass AVG_POOL1D = eINSTANCE.getAvgPool1d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_2_1Impl <em>Pooling layers 1121</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_2_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers_1_1_2_1()
+ * @generated
+ */
+ EClass POOLING_LAYERS_1121 = eINSTANCE.getPooling_layers_1_1_2_1();
+
+ /**
+ * The meta object literal for the '<em><b>Count include pad</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POOLING_LAYERS_1121__COUNT_INCLUDE_PAD = eINSTANCE.getPooling_layers_1_1_2_1_Count_include_pad();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxUnpool2dImpl <em>Max Unpool2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxUnpool2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getMaxUnpool2d()
+ * @generated
+ */
+ EClass MAX_UNPOOL2D = eINSTANCE.getMaxUnpool2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxUnpool3dImpl <em>Max Unpool3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxUnpool3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getMaxUnpool3d()
+ * @generated
+ */
+ EClass MAX_UNPOOL3D = eINSTANCE.getMaxUnpool3d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_2Impl <em>Pooling layers 112</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_2Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getPooling_layers_1_1_2()
+ * @generated
+ */
+ EClass POOLING_LAYERS_112 = eINSTANCE.getPooling_layers_1_1_2();
+
+ /**
+ * The meta object literal for the '<em><b>Ceil mode</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute POOLING_LAYERS_112__CEIL_MODE = eINSTANCE.getPooling_layers_1_1_2_Ceil_mode();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.LPPool1dImpl <em>LP Pool1d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.LPPool1dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getLPPool1d()
+ * @generated
+ */
+ EClass LP_POOL1D = eINSTANCE.getLPPool1d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.LPPool2dImpl <em>LP Pool2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.LPPool2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getLPPool2d()
+ * @generated
+ */
+ EClass LP_POOL2D = eINSTANCE.getLPPool2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool2d3dImpl <em>Avg Pool2d3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool2d3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAvgPool2d3d()
+ * @generated
+ */
+ EClass AVG_POOL2D3D = eINSTANCE.getAvgPool2d3d();
+
+ /**
+ * The meta object literal for the '<em><b>Divisor override</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute AVG_POOL2D3D__DIVISOR_OVERRIDE = eINSTANCE.getAvgPool2d3d_Divisor_override();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool2dImpl <em>Avg Pool2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAvgPool2d()
+ * @generated
+ */
+ EClass AVG_POOL2D = eINSTANCE.getAvgPool2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool3dImpl <em>Avg Pool3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getAvgPool3d()
+ * @generated
+ */
+ EClass AVG_POOL3D = eINSTANCE.getAvgPool3d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPool2dImpl <em>Max Pool2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPool2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getMaxPool2d()
+ * @generated
+ */
+ EClass MAX_POOL2D = eINSTANCE.getMaxPool2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPool3dImpl <em>Max Pool3d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPool3dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getMaxPool3d()
+ * @generated
+ */
+ EClass MAX_POOL3D = eINSTANCE.getMaxPool3d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.FractionalMaxPool2dImpl <em>Fractional Max Pool2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.FractionalMaxPool2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl#getFractionalMaxPool2d()
+ * @generated
+ */
+ EClass FRACTIONAL_MAX_POOL2D = eINSTANCE.getFractionalMaxPool2d();
+
+ /**
+ * The meta object literal for the '<em><b>Output size</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FRACTIONAL_MAX_POOL2D__OUTPUT_SIZE = eINSTANCE.getFractionalMaxPool2d_Output_size();
+
+ /**
+ * The meta object literal for the '<em><b>Output ratio</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FRACTIONAL_MAX_POOL2D__OUTPUT_RATIO = eINSTANCE.getFractionalMaxPool2d_Output_ratio();
+
+ /**
+ * The meta object literal for the '<em><b>Return indices</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FRACTIONAL_MAX_POOL2D__RETURN_INDICES = eINSTANCE.getFractionalMaxPool2d_Return_indices();
+
+ }
+
+} //Pooling_layersPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1.java
new file mode 100644
index 0000000..5bce3e9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Pooling layers 1</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1#getKernel_size <em>Kernel size</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Pooling_layers_1 extends Pooling_layers {
+ /**
+ * Returns the value of the '<em><b>Kernel size</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kernel size</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kernel size</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_1_Kernel_size()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getKernel_size();
+
+} // Pooling_layers_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1.java
new file mode 100644
index 0000000..c4f0785
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Pooling layers 11</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1#getStride <em>Stride</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_1_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Pooling_layers_1_1 extends Pooling_layers_1 {
+ /**
+ * Returns the value of the '<em><b>Stride</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stride</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stride</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_1_1_Stride()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getStride();
+
+} // Pooling_layers_1_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1_1.java
new file mode 100644
index 0000000..9b975f7
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1_1.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Pooling layers 111</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1#getPadding <em>Padding</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1#getPadding_k <em>Padding k</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_1_1_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Pooling_layers_1_1_1 extends Pooling_layers_1_1 {
+ /**
+ * Returns the value of the '<em><b>Padding</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Padding</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Padding</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_1_1_1_Padding()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getPadding();
+
+ /**
+ * Returns the value of the '<em><b>Padding k</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Padding k</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Padding k</em>' attribute.
+ * @see #setPadding_k(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_1_1_1_Padding_k()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getPadding_k();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1#getPadding_k <em>Padding k</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Padding k</em>' attribute.
+ * @see #getPadding_k()
+ * @generated
+ */
+ void setPadding_k(String value);
+
+} // Pooling_layers_1_1_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1_1_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1_1_1.java
new file mode 100644
index 0000000..2d9ddb6
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1_1_1.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Pooling layers 1111</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1_1#isCeil_mode <em>Ceil mode</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1_1#getPool_size <em>Pool size</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_1_1_1_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Pooling_layers_1_1_1_1 extends Pooling_layers_1_1_1 {
+ /**
+ * Returns the value of the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ceil mode</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ceil mode</em>' attribute.
+ * @see #setCeil_mode(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_1_1_1_1_Ceil_mode()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isCeil_mode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1_1#isCeil_mode <em>Ceil mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ceil mode</em>' attribute.
+ * @see #isCeil_mode()
+ * @generated
+ */
+ void setCeil_mode(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Pool size</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pool size</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pool size</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_1_1_1_1_Pool_size()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getPool_size();
+
+} // Pooling_layers_1_1_1_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1_2.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1_2.java
new file mode 100644
index 0000000..3a3e4a8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1_2.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Pooling layers 112</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2#isCeil_mode <em>Ceil mode</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_1_1_2()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Pooling_layers_1_1_2 extends Pooling_layers_1_1 {
+ /**
+ * Returns the value of the '<em><b>Ceil mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Ceil mode</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Ceil mode</em>' attribute.
+ * @see #setCeil_mode(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_1_1_2_Ceil_mode()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isCeil_mode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2#isCeil_mode <em>Ceil mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Ceil mode</em>' attribute.
+ * @see #isCeil_mode()
+ * @generated
+ */
+ void setCeil_mode(boolean value);
+
+} // Pooling_layers_1_1_2
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1_2_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1_2_1.java
new file mode 100644
index 0000000..21033a7
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_1_1_2_1.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Pooling layers 1121</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2_1#isCount_include_pad <em>Count include pad</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_1_1_2_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Pooling_layers_1_1_2_1 extends Pooling_layers_1_1_1_1 {
+ /**
+ * Returns the value of the '<em><b>Count include pad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Count include pad</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Count include pad</em>' attribute.
+ * @see #setCount_include_pad(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_1_1_2_1_Count_include_pad()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isCount_include_pad();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2_1#isCount_include_pad <em>Count include pad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Count include pad</em>' attribute.
+ * @see #isCount_include_pad()
+ * @generated
+ */
+ void setCount_include_pad(boolean value);
+
+} // Pooling_layers_1_1_2_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_2.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_2.java
new file mode 100644
index 0000000..7a0fa1f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/Pooling_layers_2.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Pooling layers 2</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_2#getOutput_size <em>Output size</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_2()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Pooling_layers_2 extends Pooling_layers {
+ /**
+ * Returns the value of the '<em><b>Output size</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Output size</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Output size</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#getPooling_layers_2_Output_size()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getOutput_size();
+
+} // Pooling_layers_2
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptativeMaxPool1dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptativeMaxPool1dImpl.java
new file mode 100644
index 0000000..2f8ffbb
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptativeMaxPool1dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Adaptative Max Pool1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AdaptativeMaxPool1dImpl extends AdaptativeMaxPoolImpl implements AdaptativeMaxPool1d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdaptativeMaxPool1dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.ADAPTATIVE_MAX_POOL1D;
+ }
+
+} //AdaptativeMaxPool1dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptativeMaxPool2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptativeMaxPool2dImpl.java
new file mode 100644
index 0000000..2601739
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptativeMaxPool2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Adaptative Max Pool2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AdaptativeMaxPool2dImpl extends AdaptativeMaxPoolImpl implements AdaptativeMaxPool2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdaptativeMaxPool2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.ADAPTATIVE_MAX_POOL2D;
+ }
+
+} //AdaptativeMaxPool2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptativeMaxPool3dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptativeMaxPool3dImpl.java
new file mode 100644
index 0000000..e1bf88a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptativeMaxPool3dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Adaptative Max Pool3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AdaptativeMaxPool3dImpl extends AdaptativeMaxPoolImpl implements AdaptativeMaxPool3d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdaptativeMaxPool3dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.ADAPTATIVE_MAX_POOL3D;
+ }
+
+} //AdaptativeMaxPool3dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptativeMaxPoolImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptativeMaxPoolImpl.java
new file mode 100644
index 0000000..46ff5cf
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptativeMaxPoolImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Adaptative Max Pool</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AdaptativeMaxPoolImpl#isReturn_indices <em>Return indices</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class AdaptativeMaxPoolImpl extends Pooling_layers_2Impl implements AdaptativeMaxPool {
+ /**
+ * The default value of the '{@link #isReturn_indices() <em>Return indices</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReturn_indices()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean RETURN_INDICES_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isReturn_indices() <em>Return indices</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReturn_indices()
+ * @generated
+ * @ordered
+ */
+ protected boolean return_indices = RETURN_INDICES_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdaptativeMaxPoolImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.ADAPTATIVE_MAX_POOL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isReturn_indices() {
+ return return_indices;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setReturn_indices(boolean newReturn_indices) {
+ boolean oldReturn_indices = return_indices;
+ return_indices = newReturn_indices;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Pooling_layersPackage.ADAPTATIVE_MAX_POOL__RETURN_INDICES, oldReturn_indices, return_indices));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Pooling_layersPackage.ADAPTATIVE_MAX_POOL__RETURN_INDICES:
+ return isReturn_indices();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Pooling_layersPackage.ADAPTATIVE_MAX_POOL__RETURN_INDICES:
+ setReturn_indices((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.ADAPTATIVE_MAX_POOL__RETURN_INDICES:
+ setReturn_indices(RETURN_INDICES_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.ADAPTATIVE_MAX_POOL__RETURN_INDICES:
+ return return_indices != RETURN_INDICES_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (return_indices: "); //$NON-NLS-1$
+ result.append(return_indices);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AdaptativeMaxPoolImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptiveAvgPool1dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptiveAvgPool1dImpl.java
new file mode 100644
index 0000000..c9f6e51
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptiveAvgPool1dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Adaptive Avg Pool1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AdaptiveAvgPool1dImpl extends Pooling_layers_2Impl implements AdaptiveAvgPool1d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdaptiveAvgPool1dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.ADAPTIVE_AVG_POOL1D;
+ }
+
+} //AdaptiveAvgPool1dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptiveAvgPool2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptiveAvgPool2dImpl.java
new file mode 100644
index 0000000..76c76e3
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptiveAvgPool2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Adaptive Avg Pool2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AdaptiveAvgPool2dImpl extends Pooling_layers_2Impl implements AdaptiveAvgPool2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdaptiveAvgPool2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.ADAPTIVE_AVG_POOL2D;
+ }
+
+} //AdaptiveAvgPool2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptiveAvgPool3dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptiveAvgPool3dImpl.java
new file mode 100644
index 0000000..2a59cee
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AdaptiveAvgPool3dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Adaptive Avg Pool3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AdaptiveAvgPool3dImpl extends Pooling_layers_2Impl implements AdaptiveAvgPool3d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdaptiveAvgPool3dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.ADAPTIVE_AVG_POOL3D;
+ }
+
+} //AdaptiveAvgPool3dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AvgPool1dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AvgPool1dImpl.java
new file mode 100644
index 0000000..dfa7303
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AvgPool1dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Avg Pool1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AvgPool1dImpl extends Pooling_layers_1_1_2_1Impl implements AvgPool1d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AvgPool1dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.AVG_POOL1D;
+ }
+
+} //AvgPool1dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AvgPool2d3dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AvgPool2d3dImpl.java
new file mode 100644
index 0000000..821ccff
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AvgPool2d3dImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Avg Pool2d3d</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.AvgPool2d3dImpl#getDivisor_override <em>Divisor override</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class AvgPool2d3dImpl extends Pooling_layers_1_1_2_1Impl implements AvgPool2d3d {
+ /**
+ * The default value of the '{@link #getDivisor_override() <em>Divisor override</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDivisor_override()
+ * @generated
+ * @ordered
+ */
+ protected static final int DIVISOR_OVERRIDE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getDivisor_override() <em>Divisor override</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDivisor_override()
+ * @generated
+ * @ordered
+ */
+ protected int divisor_override = DIVISOR_OVERRIDE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AvgPool2d3dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.AVG_POOL2D3D;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getDivisor_override() {
+ return divisor_override;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDivisor_override(int newDivisor_override) {
+ int oldDivisor_override = divisor_override;
+ divisor_override = newDivisor_override;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Pooling_layersPackage.AVG_POOL2D3D__DIVISOR_OVERRIDE, oldDivisor_override, divisor_override));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Pooling_layersPackage.AVG_POOL2D3D__DIVISOR_OVERRIDE:
+ return getDivisor_override();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Pooling_layersPackage.AVG_POOL2D3D__DIVISOR_OVERRIDE:
+ setDivisor_override((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.AVG_POOL2D3D__DIVISOR_OVERRIDE:
+ setDivisor_override(DIVISOR_OVERRIDE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.AVG_POOL2D3D__DIVISOR_OVERRIDE:
+ return divisor_override != DIVISOR_OVERRIDE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (divisor_override: "); //$NON-NLS-1$
+ result.append(divisor_override);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AvgPool2d3dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AvgPool2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AvgPool2dImpl.java
new file mode 100644
index 0000000..4245326
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AvgPool2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Avg Pool2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AvgPool2dImpl extends AvgPool2d3dImpl implements AvgPool2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AvgPool2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.AVG_POOL2D;
+ }
+
+} //AvgPool2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AvgPool3dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AvgPool3dImpl.java
new file mode 100644
index 0000000..8a63d5f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/AvgPool3dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Avg Pool3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class AvgPool3dImpl extends AvgPool2d3dImpl implements AvgPool3d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AvgPool3dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.AVG_POOL3D;
+ }
+
+} //AvgPool3dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/FractionalMaxPool2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/FractionalMaxPool2dImpl.java
new file mode 100644
index 0000000..d0ccd8d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/FractionalMaxPool2dImpl.java
@@ -0,0 +1,254 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Fractional Max Pool2d</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.FractionalMaxPool2dImpl#getOutput_size <em>Output size</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.FractionalMaxPool2dImpl#getOutput_ratio <em>Output ratio</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.FractionalMaxPool2dImpl#isReturn_indices <em>Return indices</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FractionalMaxPool2dImpl extends Pooling_layers_1Impl implements FractionalMaxPool2d {
+ /**
+ * The cached value of the '{@link #getOutput_size() <em>Output size</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutput_size()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> output_size;
+
+ /**
+ * The cached value of the '{@link #getOutput_ratio() <em>Output ratio</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutput_ratio()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> output_ratio;
+
+ /**
+ * The default value of the '{@link #isReturn_indices() <em>Return indices</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReturn_indices()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean RETURN_INDICES_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isReturn_indices() <em>Return indices</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReturn_indices()
+ * @generated
+ * @ordered
+ */
+ protected boolean return_indices = RETURN_INDICES_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FractionalMaxPool2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.FRACTIONAL_MAX_POOL2D;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getOutput_size() {
+ if (output_size == null) {
+ output_size = new EDataTypeUniqueEList<Integer>(Integer.class, this, Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__OUTPUT_SIZE);
+ }
+ return output_size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getOutput_ratio() {
+ if (output_ratio == null) {
+ output_ratio = new EDataTypeUniqueEList<Integer>(Integer.class, this, Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__OUTPUT_RATIO);
+ }
+ return output_ratio;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isReturn_indices() {
+ return return_indices;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setReturn_indices(boolean newReturn_indices) {
+ boolean oldReturn_indices = return_indices;
+ return_indices = newReturn_indices;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__RETURN_INDICES, oldReturn_indices, return_indices));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__OUTPUT_SIZE:
+ return getOutput_size();
+ case Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__OUTPUT_RATIO:
+ return getOutput_ratio();
+ case Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__RETURN_INDICES:
+ return isReturn_indices();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__OUTPUT_SIZE:
+ getOutput_size().clear();
+ getOutput_size().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__OUTPUT_RATIO:
+ getOutput_ratio().clear();
+ getOutput_ratio().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__RETURN_INDICES:
+ setReturn_indices((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__OUTPUT_SIZE:
+ getOutput_size().clear();
+ return;
+ case Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__OUTPUT_RATIO:
+ getOutput_ratio().clear();
+ return;
+ case Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__RETURN_INDICES:
+ setReturn_indices(RETURN_INDICES_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__OUTPUT_SIZE:
+ return output_size != null && !output_size.isEmpty();
+ case Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__OUTPUT_RATIO:
+ return output_ratio != null && !output_ratio.isEmpty();
+ case Pooling_layersPackage.FRACTIONAL_MAX_POOL2D__RETURN_INDICES:
+ return return_indices != RETURN_INDICES_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (output_size: "); //$NON-NLS-1$
+ result.append(output_size);
+ result.append(", output_ratio: "); //$NON-NLS-1$
+ result.append(output_ratio);
+ result.append(", return_indices: "); //$NON-NLS-1$
+ result.append(return_indices);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FractionalMaxPool2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/LPPool1dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/LPPool1dImpl.java
new file mode 100644
index 0000000..9c0591a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/LPPool1dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.LPPool1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>LP Pool1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class LPPool1dImpl extends Pooling_layers_1_1_2Impl implements LPPool1d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LPPool1dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.LP_POOL1D;
+ }
+
+} //LPPool1dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/LPPool2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/LPPool2dImpl.java
new file mode 100644
index 0000000..b1b4236
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/LPPool2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.LPPool2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>LP Pool2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class LPPool2dImpl extends Pooling_layers_1_1_2Impl implements LPPool2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LPPool2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.LP_POOL2D;
+ }
+
+} //LPPool2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxPool1dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxPool1dImpl.java
new file mode 100644
index 0000000..1386286
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxPool1dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Max Pool1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MaxPool1dImpl extends MaxPoolImpl implements MaxPool1d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MaxPool1dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.MAX_POOL1D;
+ }
+
+} //MaxPool1dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxPool2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxPool2dImpl.java
new file mode 100644
index 0000000..72c7dc0
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxPool2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Max Pool2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MaxPool2dImpl extends MaxPoolImpl implements MaxPool2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MaxPool2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.MAX_POOL2D;
+ }
+
+} //MaxPool2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxPool3dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxPool3dImpl.java
new file mode 100644
index 0000000..bea2bef
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxPool3dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Max Pool3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MaxPool3dImpl extends MaxPoolImpl implements MaxPool3d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MaxPool3dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.MAX_POOL3D;
+ }
+
+} //MaxPool3dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxPoolImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxPoolImpl.java
new file mode 100644
index 0000000..cf9d6c3
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxPoolImpl.java
@@ -0,0 +1,217 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Max Pool</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPoolImpl#getDilation <em>Dilation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.MaxPoolImpl#isReturn_indices <em>Return indices</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class MaxPoolImpl extends Pooling_layers_1_1_1_1Impl implements MaxPool {
+ /**
+ * The cached value of the '{@link #getDilation() <em>Dilation</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDilation()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> dilation;
+
+ /**
+ * The default value of the '{@link #isReturn_indices() <em>Return indices</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReturn_indices()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean RETURN_INDICES_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isReturn_indices() <em>Return indices</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReturn_indices()
+ * @generated
+ * @ordered
+ */
+ protected boolean return_indices = RETURN_INDICES_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MaxPoolImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.MAX_POOL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getDilation() {
+ if (dilation == null) {
+ dilation = new EDataTypeUniqueEList<Integer>(Integer.class, this, Pooling_layersPackage.MAX_POOL__DILATION);
+ }
+ return dilation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isReturn_indices() {
+ return return_indices;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setReturn_indices(boolean newReturn_indices) {
+ boolean oldReturn_indices = return_indices;
+ return_indices = newReturn_indices;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Pooling_layersPackage.MAX_POOL__RETURN_INDICES, oldReturn_indices, return_indices));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Pooling_layersPackage.MAX_POOL__DILATION:
+ return getDilation();
+ case Pooling_layersPackage.MAX_POOL__RETURN_INDICES:
+ return isReturn_indices();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Pooling_layersPackage.MAX_POOL__DILATION:
+ getDilation().clear();
+ getDilation().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case Pooling_layersPackage.MAX_POOL__RETURN_INDICES:
+ setReturn_indices((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.MAX_POOL__DILATION:
+ getDilation().clear();
+ return;
+ case Pooling_layersPackage.MAX_POOL__RETURN_INDICES:
+ setReturn_indices(RETURN_INDICES_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.MAX_POOL__DILATION:
+ return dilation != null && !dilation.isEmpty();
+ case Pooling_layersPackage.MAX_POOL__RETURN_INDICES:
+ return return_indices != RETURN_INDICES_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (dilation: "); //$NON-NLS-1$
+ result.append(dilation);
+ result.append(", return_indices: "); //$NON-NLS-1$
+ result.append(return_indices);
+ result.append(')');
+ return result.toString();
+ }
+
+} //MaxPoolImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxUnpool1dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxUnpool1dImpl.java
new file mode 100644
index 0000000..b9ca9d1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxUnpool1dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Max Unpool1d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MaxUnpool1dImpl extends Pooling_layers_1_1_1Impl implements MaxUnpool1d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MaxUnpool1dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.MAX_UNPOOL1D;
+ }
+
+} //MaxUnpool1dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxUnpool2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxUnpool2dImpl.java
new file mode 100644
index 0000000..0a3b0d1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxUnpool2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Max Unpool2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MaxUnpool2dImpl extends Pooling_layers_1_1_1Impl implements MaxUnpool2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MaxUnpool2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.MAX_UNPOOL2D;
+ }
+
+} //MaxUnpool2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxUnpool3dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxUnpool3dImpl.java
new file mode 100644
index 0000000..19d9bb0
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/MaxUnpool3dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Max Unpool3d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MaxUnpool3dImpl extends Pooling_layers_1_1_1Impl implements MaxUnpool3d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MaxUnpool3dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.MAX_UNPOOL3D;
+ }
+
+} //MaxUnpool3dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layersFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layersFactoryImpl.java
new file mode 100644
index 0000000..3f8d963
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layersFactoryImpl.java
@@ -0,0 +1,310 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Pooling_layersFactoryImpl extends EFactoryImpl implements Pooling_layersFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Pooling_layersFactory init() {
+ try {
+ Pooling_layersFactory thePooling_layersFactory = (Pooling_layersFactory)EPackage.Registry.INSTANCE.getEFactory(Pooling_layersPackage.eNS_URI);
+ if (thePooling_layersFactory != null) {
+ return thePooling_layersFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Pooling_layersFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Pooling_layersFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Pooling_layersPackage.ADAPTATIVE_MAX_POOL1D: return createAdaptativeMaxPool1d();
+ case Pooling_layersPackage.ADAPTATIVE_MAX_POOL2D: return createAdaptativeMaxPool2d();
+ case Pooling_layersPackage.ADAPTATIVE_MAX_POOL3D: return createAdaptativeMaxPool3d();
+ case Pooling_layersPackage.ADAPTIVE_AVG_POOL3D: return createAdaptiveAvgPool3d();
+ case Pooling_layersPackage.ADAPTIVE_AVG_POOL2D: return createAdaptiveAvgPool2d();
+ case Pooling_layersPackage.ADAPTIVE_AVG_POOL1D: return createAdaptiveAvgPool1d();
+ case Pooling_layersPackage.MAX_POOL1D: return createMaxPool1d();
+ case Pooling_layersPackage.MAX_UNPOOL1D: return createMaxUnpool1d();
+ case Pooling_layersPackage.AVG_POOL1D: return createAvgPool1d();
+ case Pooling_layersPackage.MAX_UNPOOL2D: return createMaxUnpool2d();
+ case Pooling_layersPackage.MAX_UNPOOL3D: return createMaxUnpool3d();
+ case Pooling_layersPackage.LP_POOL1D: return createLPPool1d();
+ case Pooling_layersPackage.LP_POOL2D: return createLPPool2d();
+ case Pooling_layersPackage.AVG_POOL2D: return createAvgPool2d();
+ case Pooling_layersPackage.AVG_POOL3D: return createAvgPool3d();
+ case Pooling_layersPackage.MAX_POOL2D: return createMaxPool2d();
+ case Pooling_layersPackage.MAX_POOL3D: return createMaxPool3d();
+ case Pooling_layersPackage.FRACTIONAL_MAX_POOL2D: return createFractionalMaxPool2d();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AdaptativeMaxPool1d createAdaptativeMaxPool1d() {
+ AdaptativeMaxPool1dImpl adaptativeMaxPool1d = new AdaptativeMaxPool1dImpl();
+ return adaptativeMaxPool1d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AdaptativeMaxPool2d createAdaptativeMaxPool2d() {
+ AdaptativeMaxPool2dImpl adaptativeMaxPool2d = new AdaptativeMaxPool2dImpl();
+ return adaptativeMaxPool2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AdaptativeMaxPool3d createAdaptativeMaxPool3d() {
+ AdaptativeMaxPool3dImpl adaptativeMaxPool3d = new AdaptativeMaxPool3dImpl();
+ return adaptativeMaxPool3d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AdaptiveAvgPool3d createAdaptiveAvgPool3d() {
+ AdaptiveAvgPool3dImpl adaptiveAvgPool3d = new AdaptiveAvgPool3dImpl();
+ return adaptiveAvgPool3d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AdaptiveAvgPool2d createAdaptiveAvgPool2d() {
+ AdaptiveAvgPool2dImpl adaptiveAvgPool2d = new AdaptiveAvgPool2dImpl();
+ return adaptiveAvgPool2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AdaptiveAvgPool1d createAdaptiveAvgPool1d() {
+ AdaptiveAvgPool1dImpl adaptiveAvgPool1d = new AdaptiveAvgPool1dImpl();
+ return adaptiveAvgPool1d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public MaxPool1d createMaxPool1d() {
+ MaxPool1dImpl maxPool1d = new MaxPool1dImpl();
+ return maxPool1d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public MaxUnpool1d createMaxUnpool1d() {
+ MaxUnpool1dImpl maxUnpool1d = new MaxUnpool1dImpl();
+ return maxUnpool1d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AvgPool1d createAvgPool1d() {
+ AvgPool1dImpl avgPool1d = new AvgPool1dImpl();
+ return avgPool1d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public MaxUnpool2d createMaxUnpool2d() {
+ MaxUnpool2dImpl maxUnpool2d = new MaxUnpool2dImpl();
+ return maxUnpool2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public MaxUnpool3d createMaxUnpool3d() {
+ MaxUnpool3dImpl maxUnpool3d = new MaxUnpool3dImpl();
+ return maxUnpool3d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public LPPool1d createLPPool1d() {
+ LPPool1dImpl lpPool1d = new LPPool1dImpl();
+ return lpPool1d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public LPPool2d createLPPool2d() {
+ LPPool2dImpl lpPool2d = new LPPool2dImpl();
+ return lpPool2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AvgPool2d createAvgPool2d() {
+ AvgPool2dImpl avgPool2d = new AvgPool2dImpl();
+ return avgPool2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AvgPool3d createAvgPool3d() {
+ AvgPool3dImpl avgPool3d = new AvgPool3dImpl();
+ return avgPool3d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public MaxPool2d createMaxPool2d() {
+ MaxPool2dImpl maxPool2d = new MaxPool2dImpl();
+ return maxPool2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public MaxPool3d createMaxPool3d() {
+ MaxPool3dImpl maxPool3d = new MaxPool3dImpl();
+ return maxPool3d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public FractionalMaxPool2d createFractionalMaxPool2d() {
+ FractionalMaxPool2dImpl fractionalMaxPool2d = new FractionalMaxPool2dImpl();
+ return fractionalMaxPool2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Pooling_layersPackage getPooling_layersPackage() {
+ return (Pooling_layersPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Pooling_layersPackage getPackage() {
+ return Pooling_layersPackage.eINSTANCE;
+ }
+
+} //Pooling_layersFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layersImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layersImpl.java
new file mode 100644
index 0000000..e529f42
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layersImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Pooling layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class Pooling_layersImpl extends ModelImpl implements Pooling_layers {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Pooling_layersImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.POOLING_LAYERS;
+ }
+
+} //Pooling_layersImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layersPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layersPackageImpl.java
new file mode 100644
index 0000000..cc8413d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layersPackageImpl.java
@@ -0,0 +1,1215 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.LPPool1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.LPPool2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool1d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool3d;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_2;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Pooling_layersPackageImpl extends EPackageImpl implements Pooling_layersPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pooling_layersEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pooling_layers_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pooling_layers_2EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass adaptativeMaxPoolEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass adaptativeMaxPool1dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass adaptativeMaxPool2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass adaptativeMaxPool3dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass adaptiveAvgPool3dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass adaptiveAvgPool2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass adaptiveAvgPool1dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pooling_layers_1_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass maxPool1dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass maxPoolEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pooling_layers_1_1_1_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pooling_layers_1_1_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass maxUnpool1dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass avgPool1dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pooling_layers_1_1_2_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass maxUnpool2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass maxUnpool3dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pooling_layers_1_1_2EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass lpPool1dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass lpPool2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass avgPool2d3dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass avgPool2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass avgPool3dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass maxPool2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass maxPool3dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass fractionalMaxPool2dEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Pooling_layersPackageImpl() {
+ super(eNS_URI, Pooling_layersFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Pooling_layersPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Pooling_layersPackage init() {
+ if (isInited) return (Pooling_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredPooling_layersPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = registeredPooling_layersPackage instanceof Pooling_layersPackageImpl ? (Pooling_layersPackageImpl)registeredPooling_layersPackage : new Pooling_layersPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ thePooling_layersPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ thePooling_layersPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ thePooling_layersPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Pooling_layersPackage.eNS_URI, thePooling_layersPackage);
+ return thePooling_layersPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPooling_layers() {
+ return pooling_layersEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPooling_layers_1() {
+ return pooling_layers_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPooling_layers_1_Kernel_size() {
+ return (EAttribute)pooling_layers_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPooling_layers_2() {
+ return pooling_layers_2EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPooling_layers_2_Output_size() {
+ return (EAttribute)pooling_layers_2EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAdaptativeMaxPool() {
+ return adaptativeMaxPoolEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getAdaptativeMaxPool_Return_indices() {
+ return (EAttribute)adaptativeMaxPoolEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAdaptativeMaxPool1d() {
+ return adaptativeMaxPool1dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAdaptativeMaxPool2d() {
+ return adaptativeMaxPool2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAdaptativeMaxPool3d() {
+ return adaptativeMaxPool3dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAdaptiveAvgPool3d() {
+ return adaptiveAvgPool3dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAdaptiveAvgPool2d() {
+ return adaptiveAvgPool2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAdaptiveAvgPool1d() {
+ return adaptiveAvgPool1dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPooling_layers_1_1() {
+ return pooling_layers_1_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPooling_layers_1_1_Stride() {
+ return (EAttribute)pooling_layers_1_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getMaxPool1d() {
+ return maxPool1dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getMaxPool() {
+ return maxPoolEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getMaxPool_Dilation() {
+ return (EAttribute)maxPoolEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getMaxPool_Return_indices() {
+ return (EAttribute)maxPoolEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPooling_layers_1_1_1_1() {
+ return pooling_layers_1_1_1_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPooling_layers_1_1_1_1_Ceil_mode() {
+ return (EAttribute)pooling_layers_1_1_1_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPooling_layers_1_1_1_1_Pool_size() {
+ return (EAttribute)pooling_layers_1_1_1_1EClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPooling_layers_1_1_1() {
+ return pooling_layers_1_1_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPooling_layers_1_1_1_Padding() {
+ return (EAttribute)pooling_layers_1_1_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPooling_layers_1_1_1_Padding_k() {
+ return (EAttribute)pooling_layers_1_1_1EClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getMaxUnpool1d() {
+ return maxUnpool1dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAvgPool1d() {
+ return avgPool1dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPooling_layers_1_1_2_1() {
+ return pooling_layers_1_1_2_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPooling_layers_1_1_2_1_Count_include_pad() {
+ return (EAttribute)pooling_layers_1_1_2_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getMaxUnpool2d() {
+ return maxUnpool2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getMaxUnpool3d() {
+ return maxUnpool3dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPooling_layers_1_1_2() {
+ return pooling_layers_1_1_2EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPooling_layers_1_1_2_Ceil_mode() {
+ return (EAttribute)pooling_layers_1_1_2EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLPPool1d() {
+ return lpPool1dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLPPool2d() {
+ return lpPool2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAvgPool2d3d() {
+ return avgPool2d3dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getAvgPool2d3d_Divisor_override() {
+ return (EAttribute)avgPool2d3dEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAvgPool2d() {
+ return avgPool2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAvgPool3d() {
+ return avgPool3dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getMaxPool2d() {
+ return maxPool2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getMaxPool3d() {
+ return maxPool3dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getFractionalMaxPool2d() {
+ return fractionalMaxPool2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getFractionalMaxPool2d_Output_size() {
+ return (EAttribute)fractionalMaxPool2dEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getFractionalMaxPool2d_Output_ratio() {
+ return (EAttribute)fractionalMaxPool2dEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getFractionalMaxPool2d_Return_indices() {
+ return (EAttribute)fractionalMaxPool2dEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Pooling_layersFactory getPooling_layersFactory() {
+ return (Pooling_layersFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ pooling_layersEClass = createEClass(POOLING_LAYERS);
+
+ pooling_layers_1EClass = createEClass(POOLING_LAYERS_1);
+ createEAttribute(pooling_layers_1EClass, POOLING_LAYERS_1__KERNEL_SIZE);
+
+ pooling_layers_2EClass = createEClass(POOLING_LAYERS_2);
+ createEAttribute(pooling_layers_2EClass, POOLING_LAYERS_2__OUTPUT_SIZE);
+
+ adaptativeMaxPoolEClass = createEClass(ADAPTATIVE_MAX_POOL);
+ createEAttribute(adaptativeMaxPoolEClass, ADAPTATIVE_MAX_POOL__RETURN_INDICES);
+
+ adaptativeMaxPool1dEClass = createEClass(ADAPTATIVE_MAX_POOL1D);
+
+ adaptativeMaxPool2dEClass = createEClass(ADAPTATIVE_MAX_POOL2D);
+
+ adaptativeMaxPool3dEClass = createEClass(ADAPTATIVE_MAX_POOL3D);
+
+ adaptiveAvgPool3dEClass = createEClass(ADAPTIVE_AVG_POOL3D);
+
+ adaptiveAvgPool2dEClass = createEClass(ADAPTIVE_AVG_POOL2D);
+
+ adaptiveAvgPool1dEClass = createEClass(ADAPTIVE_AVG_POOL1D);
+
+ pooling_layers_1_1EClass = createEClass(POOLING_LAYERS_11);
+ createEAttribute(pooling_layers_1_1EClass, POOLING_LAYERS_11__STRIDE);
+
+ maxPool1dEClass = createEClass(MAX_POOL1D);
+
+ maxPoolEClass = createEClass(MAX_POOL);
+ createEAttribute(maxPoolEClass, MAX_POOL__DILATION);
+ createEAttribute(maxPoolEClass, MAX_POOL__RETURN_INDICES);
+
+ pooling_layers_1_1_1_1EClass = createEClass(POOLING_LAYERS_1111);
+ createEAttribute(pooling_layers_1_1_1_1EClass, POOLING_LAYERS_1111__CEIL_MODE);
+ createEAttribute(pooling_layers_1_1_1_1EClass, POOLING_LAYERS_1111__POOL_SIZE);
+
+ pooling_layers_1_1_1EClass = createEClass(POOLING_LAYERS_111);
+ createEAttribute(pooling_layers_1_1_1EClass, POOLING_LAYERS_111__PADDING);
+ createEAttribute(pooling_layers_1_1_1EClass, POOLING_LAYERS_111__PADDING_K);
+
+ maxUnpool1dEClass = createEClass(MAX_UNPOOL1D);
+
+ avgPool1dEClass = createEClass(AVG_POOL1D);
+
+ pooling_layers_1_1_2_1EClass = createEClass(POOLING_LAYERS_1121);
+ createEAttribute(pooling_layers_1_1_2_1EClass, POOLING_LAYERS_1121__COUNT_INCLUDE_PAD);
+
+ maxUnpool2dEClass = createEClass(MAX_UNPOOL2D);
+
+ maxUnpool3dEClass = createEClass(MAX_UNPOOL3D);
+
+ pooling_layers_1_1_2EClass = createEClass(POOLING_LAYERS_112);
+ createEAttribute(pooling_layers_1_1_2EClass, POOLING_LAYERS_112__CEIL_MODE);
+
+ lpPool1dEClass = createEClass(LP_POOL1D);
+
+ lpPool2dEClass = createEClass(LP_POOL2D);
+
+ avgPool2d3dEClass = createEClass(AVG_POOL2D3D);
+ createEAttribute(avgPool2d3dEClass, AVG_POOL2D3D__DIVISOR_OVERRIDE);
+
+ avgPool2dEClass = createEClass(AVG_POOL2D);
+
+ avgPool3dEClass = createEClass(AVG_POOL3D);
+
+ maxPool2dEClass = createEClass(MAX_POOL2D);
+
+ maxPool3dEClass = createEClass(MAX_POOL3D);
+
+ fractionalMaxPool2dEClass = createEClass(FRACTIONAL_MAX_POOL2D);
+ createEAttribute(fractionalMaxPool2dEClass, FRACTIONAL_MAX_POOL2D__OUTPUT_SIZE);
+ createEAttribute(fractionalMaxPool2dEClass, FRACTIONAL_MAX_POOL2D__OUTPUT_RATIO);
+ createEAttribute(fractionalMaxPool2dEClass, FRACTIONAL_MAX_POOL2D__RETURN_INDICES);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ pooling_layersEClass.getESuperTypes().add(theModulePackage.getModel());
+ pooling_layers_1EClass.getESuperTypes().add(this.getPooling_layers());
+ pooling_layers_2EClass.getESuperTypes().add(this.getPooling_layers());
+ adaptativeMaxPoolEClass.getESuperTypes().add(this.getPooling_layers_2());
+ adaptativeMaxPool1dEClass.getESuperTypes().add(this.getAdaptativeMaxPool());
+ adaptativeMaxPool2dEClass.getESuperTypes().add(this.getAdaptativeMaxPool());
+ adaptativeMaxPool3dEClass.getESuperTypes().add(this.getAdaptativeMaxPool());
+ adaptiveAvgPool3dEClass.getESuperTypes().add(this.getPooling_layers_2());
+ adaptiveAvgPool2dEClass.getESuperTypes().add(this.getPooling_layers_2());
+ adaptiveAvgPool1dEClass.getESuperTypes().add(this.getPooling_layers_2());
+ pooling_layers_1_1EClass.getESuperTypes().add(this.getPooling_layers_1());
+ maxPool1dEClass.getESuperTypes().add(this.getMaxPool());
+ maxPoolEClass.getESuperTypes().add(this.getPooling_layers_1_1_1_1());
+ pooling_layers_1_1_1_1EClass.getESuperTypes().add(this.getPooling_layers_1_1_1());
+ pooling_layers_1_1_1EClass.getESuperTypes().add(this.getPooling_layers_1_1());
+ maxUnpool1dEClass.getESuperTypes().add(this.getPooling_layers_1_1_1());
+ avgPool1dEClass.getESuperTypes().add(this.getPooling_layers_1_1_2_1());
+ pooling_layers_1_1_2_1EClass.getESuperTypes().add(this.getPooling_layers_1_1_1_1());
+ maxUnpool2dEClass.getESuperTypes().add(this.getPooling_layers_1_1_1());
+ maxUnpool3dEClass.getESuperTypes().add(this.getPooling_layers_1_1_1());
+ pooling_layers_1_1_2EClass.getESuperTypes().add(this.getPooling_layers_1_1());
+ lpPool1dEClass.getESuperTypes().add(this.getPooling_layers_1_1_2());
+ lpPool2dEClass.getESuperTypes().add(this.getPooling_layers_1_1_2());
+ avgPool2d3dEClass.getESuperTypes().add(this.getPooling_layers_1_1_2_1());
+ avgPool2dEClass.getESuperTypes().add(this.getAvgPool2d3d());
+ avgPool3dEClass.getESuperTypes().add(this.getAvgPool2d3d());
+ maxPool2dEClass.getESuperTypes().add(this.getMaxPool());
+ maxPool3dEClass.getESuperTypes().add(this.getMaxPool());
+ fractionalMaxPool2dEClass.getESuperTypes().add(this.getPooling_layers_1());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(pooling_layersEClass, Pooling_layers.class, "Pooling_layers", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(pooling_layers_1EClass, Pooling_layers_1.class, "Pooling_layers_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPooling_layers_1_Kernel_size(), theTypesPackage.getInteger(), "kernel_size", null, 0, -1, Pooling_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(pooling_layers_2EClass, Pooling_layers_2.class, "Pooling_layers_2", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPooling_layers_2_Output_size(), theTypesPackage.getInteger(), "output_size", null, 0, -1, Pooling_layers_2.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(adaptativeMaxPoolEClass, AdaptativeMaxPool.class, "AdaptativeMaxPool", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getAdaptativeMaxPool_Return_indices(), theTypesPackage.getBoolean(), "return_indices", null, 1, 1, AdaptativeMaxPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(adaptativeMaxPool1dEClass, AdaptativeMaxPool1d.class, "AdaptativeMaxPool1d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(adaptativeMaxPool2dEClass, AdaptativeMaxPool2d.class, "AdaptativeMaxPool2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(adaptativeMaxPool3dEClass, AdaptativeMaxPool3d.class, "AdaptativeMaxPool3d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(adaptiveAvgPool3dEClass, AdaptiveAvgPool3d.class, "AdaptiveAvgPool3d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(adaptiveAvgPool2dEClass, AdaptiveAvgPool2d.class, "AdaptiveAvgPool2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(adaptiveAvgPool1dEClass, AdaptiveAvgPool1d.class, "AdaptiveAvgPool1d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(pooling_layers_1_1EClass, Pooling_layers_1_1.class, "Pooling_layers_1_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPooling_layers_1_1_Stride(), theTypesPackage.getInteger(), "stride", null, 0, -1, Pooling_layers_1_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(maxPool1dEClass, MaxPool1d.class, "MaxPool1d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(maxPoolEClass, MaxPool.class, "MaxPool", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getMaxPool_Dilation(), theTypesPackage.getInteger(), "dilation", null, 0, -1, MaxPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getMaxPool_Return_indices(), theTypesPackage.getBoolean(), "return_indices", null, 0, 1, MaxPool.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(pooling_layers_1_1_1_1EClass, Pooling_layers_1_1_1_1.class, "Pooling_layers_1_1_1_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPooling_layers_1_1_1_1_Ceil_mode(), theTypesPackage.getBoolean(), "ceil_mode", null, 0, 1, Pooling_layers_1_1_1_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getPooling_layers_1_1_1_1_Pool_size(), theTypesPackage.getInteger(), "pool_size", null, 0, -1, Pooling_layers_1_1_1_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(pooling_layers_1_1_1EClass, Pooling_layers_1_1_1.class, "Pooling_layers_1_1_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPooling_layers_1_1_1_Padding(), theTypesPackage.getInteger(), "padding", null, 0, -1, Pooling_layers_1_1_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getPooling_layers_1_1_1_Padding_k(), theTypesPackage.getString(), "padding_k", null, 0, 1, Pooling_layers_1_1_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(maxUnpool1dEClass, MaxUnpool1d.class, "MaxUnpool1d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(avgPool1dEClass, AvgPool1d.class, "AvgPool1d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(pooling_layers_1_1_2_1EClass, Pooling_layers_1_1_2_1.class, "Pooling_layers_1_1_2_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPooling_layers_1_1_2_1_Count_include_pad(), theTypesPackage.getBoolean(), "count_include_pad", null, 0, 1, Pooling_layers_1_1_2_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(maxUnpool2dEClass, MaxUnpool2d.class, "MaxUnpool2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(maxUnpool3dEClass, MaxUnpool3d.class, "MaxUnpool3d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(pooling_layers_1_1_2EClass, Pooling_layers_1_1_2.class, "Pooling_layers_1_1_2", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPooling_layers_1_1_2_Ceil_mode(), theTypesPackage.getBoolean(), "ceil_mode", null, 0, 1, Pooling_layers_1_1_2.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(lpPool1dEClass, LPPool1d.class, "LPPool1d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(lpPool2dEClass, LPPool2d.class, "LPPool2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(avgPool2d3dEClass, AvgPool2d3d.class, "AvgPool2d3d", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getAvgPool2d3d_Divisor_override(), theTypesPackage.getInteger(), "divisor_override", null, 0, 1, AvgPool2d3d.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(avgPool2dEClass, AvgPool2d.class, "AvgPool2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(avgPool3dEClass, AvgPool3d.class, "AvgPool3d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(maxPool2dEClass, MaxPool2d.class, "MaxPool2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(maxPool3dEClass, MaxPool3d.class, "MaxPool3d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(fractionalMaxPool2dEClass, FractionalMaxPool2d.class, "FractionalMaxPool2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getFractionalMaxPool2d_Output_size(), theTypesPackage.getInteger(), "output_size", null, 0, -1, FractionalMaxPool2d.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getFractionalMaxPool2d_Output_ratio(), theTypesPackage.getInteger(), "output_ratio", null, 0, -1, FractionalMaxPool2d.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getFractionalMaxPool2d_Return_indices(), theTypesPackage.getBoolean(), "return_indices", null, 0, 1, FractionalMaxPool2d.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ // Create annotations
+ // http://www.eclipse.org/uml2/2.0.0/UML
+ createUMLAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/uml2/2.0.0/UML</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createUMLAnnotations() {
+ String source = "http://www.eclipse.org/uml2/2.0.0/UML"; //$NON-NLS-1$
+ addAnnotation
+ (avgPool2d3dEClass,
+ source,
+ new String[] {
+ "originalName", "AvgPool2d/3d" //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ }
+
+} //Pooling_layersPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1Impl.java
new file mode 100644
index 0000000..87d74dd
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1Impl.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Pooling layers 1</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1Impl#getKernel_size <em>Kernel size</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Pooling_layers_1Impl extends Pooling_layersImpl implements Pooling_layers_1 {
+ /**
+ * The cached value of the '{@link #getKernel_size() <em>Kernel size</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKernel_size()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> kernel_size;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Pooling_layers_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.POOLING_LAYERS_1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getKernel_size() {
+ if (kernel_size == null) {
+ kernel_size = new EDataTypeUniqueEList<Integer>(Integer.class, this, Pooling_layersPackage.POOLING_LAYERS_1__KERNEL_SIZE);
+ }
+ return kernel_size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_1__KERNEL_SIZE:
+ return getKernel_size();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_1__KERNEL_SIZE:
+ getKernel_size().clear();
+ getKernel_size().addAll((Collection<? extends Integer>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_1__KERNEL_SIZE:
+ getKernel_size().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_1__KERNEL_SIZE:
+ return kernel_size != null && !kernel_size.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (kernel_size: "); //$NON-NLS-1$
+ result.append(kernel_size);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Pooling_layers_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1Impl.java
new file mode 100644
index 0000000..cb1d1ed
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1Impl.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Pooling layers 11</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1Impl#getStride <em>Stride</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Pooling_layers_1_1Impl extends Pooling_layers_1Impl implements Pooling_layers_1_1 {
+ /**
+ * The cached value of the '{@link #getStride() <em>Stride</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStride()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> stride;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Pooling_layers_1_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.POOLING_LAYERS_11;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getStride() {
+ if (stride == null) {
+ stride = new EDataTypeUniqueEList<Integer>(Integer.class, this, Pooling_layersPackage.POOLING_LAYERS_11__STRIDE);
+ }
+ return stride;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_11__STRIDE:
+ return getStride();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_11__STRIDE:
+ getStride().clear();
+ getStride().addAll((Collection<? extends Integer>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_11__STRIDE:
+ getStride().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_11__STRIDE:
+ return stride != null && !stride.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (stride: "); //$NON-NLS-1$
+ result.append(stride);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Pooling_layers_1_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1_1Impl.java
new file mode 100644
index 0000000..474e263
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1_1Impl.java
@@ -0,0 +1,217 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Pooling layers 111</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_1Impl#getPadding <em>Padding</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_1Impl#getPadding_k <em>Padding k</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Pooling_layers_1_1_1Impl extends Pooling_layers_1_1Impl implements Pooling_layers_1_1_1 {
+ /**
+ * The cached value of the '{@link #getPadding() <em>Padding</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPadding()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> padding;
+
+ /**
+ * The default value of the '{@link #getPadding_k() <em>Padding k</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPadding_k()
+ * @generated
+ * @ordered
+ */
+ protected static final String PADDING_K_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPadding_k() <em>Padding k</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPadding_k()
+ * @generated
+ * @ordered
+ */
+ protected String padding_k = PADDING_K_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Pooling_layers_1_1_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.POOLING_LAYERS_111;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getPadding() {
+ if (padding == null) {
+ padding = new EDataTypeUniqueEList<Integer>(Integer.class, this, Pooling_layersPackage.POOLING_LAYERS_111__PADDING);
+ }
+ return padding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getPadding_k() {
+ return padding_k;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setPadding_k(String newPadding_k) {
+ String oldPadding_k = padding_k;
+ padding_k = newPadding_k;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Pooling_layersPackage.POOLING_LAYERS_111__PADDING_K, oldPadding_k, padding_k));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_111__PADDING:
+ return getPadding();
+ case Pooling_layersPackage.POOLING_LAYERS_111__PADDING_K:
+ return getPadding_k();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_111__PADDING:
+ getPadding().clear();
+ getPadding().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case Pooling_layersPackage.POOLING_LAYERS_111__PADDING_K:
+ setPadding_k((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_111__PADDING:
+ getPadding().clear();
+ return;
+ case Pooling_layersPackage.POOLING_LAYERS_111__PADDING_K:
+ setPadding_k(PADDING_K_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_111__PADDING:
+ return padding != null && !padding.isEmpty();
+ case Pooling_layersPackage.POOLING_LAYERS_111__PADDING_K:
+ return PADDING_K_EDEFAULT == null ? padding_k != null : !PADDING_K_EDEFAULT.equals(padding_k);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (padding: "); //$NON-NLS-1$
+ result.append(padding);
+ result.append(", padding_k: "); //$NON-NLS-1$
+ result.append(padding_k);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Pooling_layers_1_1_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1_1_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1_1_1Impl.java
new file mode 100644
index 0000000..37a4111
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1_1_1Impl.java
@@ -0,0 +1,217 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Pooling layers 1111</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_1_1Impl#isCeil_mode <em>Ceil mode</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_1_1Impl#getPool_size <em>Pool size</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Pooling_layers_1_1_1_1Impl extends Pooling_layers_1_1_1Impl implements Pooling_layers_1_1_1_1 {
+ /**
+ * The default value of the '{@link #isCeil_mode() <em>Ceil mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCeil_mode()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean CEIL_MODE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isCeil_mode() <em>Ceil mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCeil_mode()
+ * @generated
+ * @ordered
+ */
+ protected boolean ceil_mode = CEIL_MODE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getPool_size() <em>Pool size</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPool_size()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> pool_size;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Pooling_layers_1_1_1_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.POOLING_LAYERS_1111;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isCeil_mode() {
+ return ceil_mode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setCeil_mode(boolean newCeil_mode) {
+ boolean oldCeil_mode = ceil_mode;
+ ceil_mode = newCeil_mode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Pooling_layersPackage.POOLING_LAYERS_1111__CEIL_MODE, oldCeil_mode, ceil_mode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getPool_size() {
+ if (pool_size == null) {
+ pool_size = new EDataTypeUniqueEList<Integer>(Integer.class, this, Pooling_layersPackage.POOLING_LAYERS_1111__POOL_SIZE);
+ }
+ return pool_size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_1111__CEIL_MODE:
+ return isCeil_mode();
+ case Pooling_layersPackage.POOLING_LAYERS_1111__POOL_SIZE:
+ return getPool_size();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_1111__CEIL_MODE:
+ setCeil_mode((Boolean)newValue);
+ return;
+ case Pooling_layersPackage.POOLING_LAYERS_1111__POOL_SIZE:
+ getPool_size().clear();
+ getPool_size().addAll((Collection<? extends Integer>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_1111__CEIL_MODE:
+ setCeil_mode(CEIL_MODE_EDEFAULT);
+ return;
+ case Pooling_layersPackage.POOLING_LAYERS_1111__POOL_SIZE:
+ getPool_size().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_1111__CEIL_MODE:
+ return ceil_mode != CEIL_MODE_EDEFAULT;
+ case Pooling_layersPackage.POOLING_LAYERS_1111__POOL_SIZE:
+ return pool_size != null && !pool_size.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (ceil_mode: "); //$NON-NLS-1$
+ result.append(ceil_mode);
+ result.append(", pool_size: "); //$NON-NLS-1$
+ result.append(pool_size);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Pooling_layers_1_1_1_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1_2Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1_2Impl.java
new file mode 100644
index 0000000..05d4029
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1_2Impl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Pooling layers 112</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_2Impl#isCeil_mode <em>Ceil mode</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Pooling_layers_1_1_2Impl extends Pooling_layers_1_1Impl implements Pooling_layers_1_1_2 {
+ /**
+ * The default value of the '{@link #isCeil_mode() <em>Ceil mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCeil_mode()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean CEIL_MODE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isCeil_mode() <em>Ceil mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCeil_mode()
+ * @generated
+ * @ordered
+ */
+ protected boolean ceil_mode = CEIL_MODE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Pooling_layers_1_1_2Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.POOLING_LAYERS_112;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isCeil_mode() {
+ return ceil_mode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setCeil_mode(boolean newCeil_mode) {
+ boolean oldCeil_mode = ceil_mode;
+ ceil_mode = newCeil_mode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Pooling_layersPackage.POOLING_LAYERS_112__CEIL_MODE, oldCeil_mode, ceil_mode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_112__CEIL_MODE:
+ return isCeil_mode();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_112__CEIL_MODE:
+ setCeil_mode((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_112__CEIL_MODE:
+ setCeil_mode(CEIL_MODE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_112__CEIL_MODE:
+ return ceil_mode != CEIL_MODE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (ceil_mode: "); //$NON-NLS-1$
+ result.append(ceil_mode);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Pooling_layers_1_1_2Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1_2_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1_2_1Impl.java
new file mode 100644
index 0000000..e602499
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_1_1_2_1Impl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Pooling layers 1121</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_1_1_2_1Impl#isCount_include_pad <em>Count include pad</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Pooling_layers_1_1_2_1Impl extends Pooling_layers_1_1_1_1Impl implements Pooling_layers_1_1_2_1 {
+ /**
+ * The default value of the '{@link #isCount_include_pad() <em>Count include pad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCount_include_pad()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean COUNT_INCLUDE_PAD_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isCount_include_pad() <em>Count include pad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCount_include_pad()
+ * @generated
+ * @ordered
+ */
+ protected boolean count_include_pad = COUNT_INCLUDE_PAD_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Pooling_layers_1_1_2_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.POOLING_LAYERS_1121;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isCount_include_pad() {
+ return count_include_pad;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setCount_include_pad(boolean newCount_include_pad) {
+ boolean oldCount_include_pad = count_include_pad;
+ count_include_pad = newCount_include_pad;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Pooling_layersPackage.POOLING_LAYERS_1121__COUNT_INCLUDE_PAD, oldCount_include_pad, count_include_pad));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_1121__COUNT_INCLUDE_PAD:
+ return isCount_include_pad();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_1121__COUNT_INCLUDE_PAD:
+ setCount_include_pad((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_1121__COUNT_INCLUDE_PAD:
+ setCount_include_pad(COUNT_INCLUDE_PAD_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_1121__COUNT_INCLUDE_PAD:
+ return count_include_pad != COUNT_INCLUDE_PAD_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (count_include_pad: "); //$NON-NLS-1$
+ result.append(count_include_pad);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Pooling_layers_1_1_2_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_2Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_2Impl.java
new file mode 100644
index 0000000..9e79fc1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/impl/Pooling_layers_2Impl.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_2;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Pooling layers 2</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layers_2Impl#getOutput_size <em>Output size</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Pooling_layers_2Impl extends Pooling_layersImpl implements Pooling_layers_2 {
+ /**
+ * The cached value of the '{@link #getOutput_size() <em>Output size</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutput_size()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> output_size;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Pooling_layers_2Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Pooling_layersPackage.Literals.POOLING_LAYERS_2;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getOutput_size() {
+ if (output_size == null) {
+ output_size = new EDataTypeUniqueEList<Integer>(Integer.class, this, Pooling_layersPackage.POOLING_LAYERS_2__OUTPUT_SIZE);
+ }
+ return output_size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_2__OUTPUT_SIZE:
+ return getOutput_size();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_2__OUTPUT_SIZE:
+ getOutput_size().clear();
+ getOutput_size().addAll((Collection<? extends Integer>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_2__OUTPUT_SIZE:
+ getOutput_size().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Pooling_layersPackage.POOLING_LAYERS_2__OUTPUT_SIZE:
+ return output_size != null && !output_size.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (output_size: "); //$NON-NLS-1$
+ result.append(output_size);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Pooling_layers_2Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/util/Pooling_layersAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/util/Pooling_layersAdapterFactory.java
new file mode 100644
index 0000000..5cebb36
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/util/Pooling_layersAdapterFactory.java
@@ -0,0 +1,651 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage
+ * @generated
+ */
+public class Pooling_layersAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Pooling_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Pooling_layersAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Pooling_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Pooling_layersSwitch<Adapter> modelSwitch =
+ new Pooling_layersSwitch<Adapter>() {
+ @Override
+ public Adapter casePooling_layers(Pooling_layers object) {
+ return createPooling_layersAdapter();
+ }
+ @Override
+ public Adapter casePooling_layers_1(Pooling_layers_1 object) {
+ return createPooling_layers_1Adapter();
+ }
+ @Override
+ public Adapter casePooling_layers_2(Pooling_layers_2 object) {
+ return createPooling_layers_2Adapter();
+ }
+ @Override
+ public Adapter caseAdaptativeMaxPool(AdaptativeMaxPool object) {
+ return createAdaptativeMaxPoolAdapter();
+ }
+ @Override
+ public Adapter caseAdaptativeMaxPool1d(AdaptativeMaxPool1d object) {
+ return createAdaptativeMaxPool1dAdapter();
+ }
+ @Override
+ public Adapter caseAdaptativeMaxPool2d(AdaptativeMaxPool2d object) {
+ return createAdaptativeMaxPool2dAdapter();
+ }
+ @Override
+ public Adapter caseAdaptativeMaxPool3d(AdaptativeMaxPool3d object) {
+ return createAdaptativeMaxPool3dAdapter();
+ }
+ @Override
+ public Adapter caseAdaptiveAvgPool3d(AdaptiveAvgPool3d object) {
+ return createAdaptiveAvgPool3dAdapter();
+ }
+ @Override
+ public Adapter caseAdaptiveAvgPool2d(AdaptiveAvgPool2d object) {
+ return createAdaptiveAvgPool2dAdapter();
+ }
+ @Override
+ public Adapter caseAdaptiveAvgPool1d(AdaptiveAvgPool1d object) {
+ return createAdaptiveAvgPool1dAdapter();
+ }
+ @Override
+ public Adapter casePooling_layers_1_1(Pooling_layers_1_1 object) {
+ return createPooling_layers_1_1Adapter();
+ }
+ @Override
+ public Adapter caseMaxPool1d(MaxPool1d object) {
+ return createMaxPool1dAdapter();
+ }
+ @Override
+ public Adapter caseMaxPool(MaxPool object) {
+ return createMaxPoolAdapter();
+ }
+ @Override
+ public Adapter casePooling_layers_1_1_1_1(Pooling_layers_1_1_1_1 object) {
+ return createPooling_layers_1_1_1_1Adapter();
+ }
+ @Override
+ public Adapter casePooling_layers_1_1_1(Pooling_layers_1_1_1 object) {
+ return createPooling_layers_1_1_1Adapter();
+ }
+ @Override
+ public Adapter caseMaxUnpool1d(MaxUnpool1d object) {
+ return createMaxUnpool1dAdapter();
+ }
+ @Override
+ public Adapter caseAvgPool1d(AvgPool1d object) {
+ return createAvgPool1dAdapter();
+ }
+ @Override
+ public Adapter casePooling_layers_1_1_2_1(Pooling_layers_1_1_2_1 object) {
+ return createPooling_layers_1_1_2_1Adapter();
+ }
+ @Override
+ public Adapter caseMaxUnpool2d(MaxUnpool2d object) {
+ return createMaxUnpool2dAdapter();
+ }
+ @Override
+ public Adapter caseMaxUnpool3d(MaxUnpool3d object) {
+ return createMaxUnpool3dAdapter();
+ }
+ @Override
+ public Adapter casePooling_layers_1_1_2(Pooling_layers_1_1_2 object) {
+ return createPooling_layers_1_1_2Adapter();
+ }
+ @Override
+ public Adapter caseLPPool1d(LPPool1d object) {
+ return createLPPool1dAdapter();
+ }
+ @Override
+ public Adapter caseLPPool2d(LPPool2d object) {
+ return createLPPool2dAdapter();
+ }
+ @Override
+ public Adapter caseAvgPool2d3d(AvgPool2d3d object) {
+ return createAvgPool2d3dAdapter();
+ }
+ @Override
+ public Adapter caseAvgPool2d(AvgPool2d object) {
+ return createAvgPool2dAdapter();
+ }
+ @Override
+ public Adapter caseAvgPool3d(AvgPool3d object) {
+ return createAvgPool3dAdapter();
+ }
+ @Override
+ public Adapter caseMaxPool2d(MaxPool2d object) {
+ return createMaxPool2dAdapter();
+ }
+ @Override
+ public Adapter caseMaxPool3d(MaxPool3d object) {
+ return createMaxPool3dAdapter();
+ }
+ @Override
+ public Adapter caseFractionalMaxPool2d(FractionalMaxPool2d object) {
+ return createFractionalMaxPool2dAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers <em>Pooling layers</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers
+ * @generated
+ */
+ public Adapter createPooling_layersAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1 <em>Pooling layers 1</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1
+ * @generated
+ */
+ public Adapter createPooling_layers_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_2 <em>Pooling layers 2</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_2
+ * @generated
+ */
+ public Adapter createPooling_layers_2Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool <em>Adaptative Max Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool
+ * @generated
+ */
+ public Adapter createAdaptativeMaxPoolAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool1d <em>Adaptative Max Pool1d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool1d
+ * @generated
+ */
+ public Adapter createAdaptativeMaxPool1dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool2d <em>Adaptative Max Pool2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool2d
+ * @generated
+ */
+ public Adapter createAdaptativeMaxPool2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool3d <em>Adaptative Max Pool3d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptativeMaxPool3d
+ * @generated
+ */
+ public Adapter createAdaptativeMaxPool3dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool3d <em>Adaptive Avg Pool3d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool3d
+ * @generated
+ */
+ public Adapter createAdaptiveAvgPool3dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool2d <em>Adaptive Avg Pool2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool2d
+ * @generated
+ */
+ public Adapter createAdaptiveAvgPool2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool1d <em>Adaptive Avg Pool1d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AdaptiveAvgPool1d
+ * @generated
+ */
+ public Adapter createAdaptiveAvgPool1dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1 <em>Pooling layers 11</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1
+ * @generated
+ */
+ public Adapter createPooling_layers_1_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool1d <em>Max Pool1d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool1d
+ * @generated
+ */
+ public Adapter createMaxPool1dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool <em>Max Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool
+ * @generated
+ */
+ public Adapter createMaxPoolAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1_1 <em>Pooling layers 1111</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1_1
+ * @generated
+ */
+ public Adapter createPooling_layers_1_1_1_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1 <em>Pooling layers 111</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_1
+ * @generated
+ */
+ public Adapter createPooling_layers_1_1_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool1d <em>Max Unpool1d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool1d
+ * @generated
+ */
+ public Adapter createMaxUnpool1dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool1d <em>Avg Pool1d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool1d
+ * @generated
+ */
+ public Adapter createAvgPool1dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2_1 <em>Pooling layers 1121</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2_1
+ * @generated
+ */
+ public Adapter createPooling_layers_1_1_2_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool2d <em>Max Unpool2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool2d
+ * @generated
+ */
+ public Adapter createMaxUnpool2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool3d <em>Max Unpool3d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxUnpool3d
+ * @generated
+ */
+ public Adapter createMaxUnpool3dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2 <em>Pooling layers 112</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layers_1_1_2
+ * @generated
+ */
+ public Adapter createPooling_layers_1_1_2Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.LPPool1d <em>LP Pool1d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.LPPool1d
+ * @generated
+ */
+ public Adapter createLPPool1dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.LPPool2d <em>LP Pool2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.LPPool2d
+ * @generated
+ */
+ public Adapter createLPPool2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d3d <em>Avg Pool2d3d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d3d
+ * @generated
+ */
+ public Adapter createAvgPool2d3dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d <em>Avg Pool2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool2d
+ * @generated
+ */
+ public Adapter createAvgPool2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool3d <em>Avg Pool3d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.AvgPool3d
+ * @generated
+ */
+ public Adapter createAvgPool3dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool2d <em>Max Pool2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool2d
+ * @generated
+ */
+ public Adapter createMaxPool2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool3d <em>Max Pool3d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.MaxPool3d
+ * @generated
+ */
+ public Adapter createMaxPool3dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d <em>Fractional Max Pool2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.FractionalMaxPool2d
+ * @generated
+ */
+ public Adapter createFractionalMaxPool2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Pooling_layersAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/util/Pooling_layersSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/util/Pooling_layersSwitch.java
new file mode 100644
index 0000000..384491c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Pooling_layers/util/Pooling_layersSwitch.java
@@ -0,0 +1,858 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage
+ * @generated
+ */
+public class Pooling_layersSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Pooling_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Pooling_layersSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Pooling_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Pooling_layersPackage.POOLING_LAYERS: {
+ Pooling_layers pooling_layers = (Pooling_layers)theEObject;
+ T result = casePooling_layers(pooling_layers);
+ if (result == null) result = caseModel(pooling_layers);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.POOLING_LAYERS_1: {
+ Pooling_layers_1 pooling_layers_1 = (Pooling_layers_1)theEObject;
+ T result = casePooling_layers_1(pooling_layers_1);
+ if (result == null) result = casePooling_layers(pooling_layers_1);
+ if (result == null) result = caseModel(pooling_layers_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.POOLING_LAYERS_2: {
+ Pooling_layers_2 pooling_layers_2 = (Pooling_layers_2)theEObject;
+ T result = casePooling_layers_2(pooling_layers_2);
+ if (result == null) result = casePooling_layers(pooling_layers_2);
+ if (result == null) result = caseModel(pooling_layers_2);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.ADAPTATIVE_MAX_POOL: {
+ AdaptativeMaxPool adaptativeMaxPool = (AdaptativeMaxPool)theEObject;
+ T result = caseAdaptativeMaxPool(adaptativeMaxPool);
+ if (result == null) result = casePooling_layers_2(adaptativeMaxPool);
+ if (result == null) result = casePooling_layers(adaptativeMaxPool);
+ if (result == null) result = caseModel(adaptativeMaxPool);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.ADAPTATIVE_MAX_POOL1D: {
+ AdaptativeMaxPool1d adaptativeMaxPool1d = (AdaptativeMaxPool1d)theEObject;
+ T result = caseAdaptativeMaxPool1d(adaptativeMaxPool1d);
+ if (result == null) result = caseAdaptativeMaxPool(adaptativeMaxPool1d);
+ if (result == null) result = casePooling_layers_2(adaptativeMaxPool1d);
+ if (result == null) result = casePooling_layers(adaptativeMaxPool1d);
+ if (result == null) result = caseModel(adaptativeMaxPool1d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.ADAPTATIVE_MAX_POOL2D: {
+ AdaptativeMaxPool2d adaptativeMaxPool2d = (AdaptativeMaxPool2d)theEObject;
+ T result = caseAdaptativeMaxPool2d(adaptativeMaxPool2d);
+ if (result == null) result = caseAdaptativeMaxPool(adaptativeMaxPool2d);
+ if (result == null) result = casePooling_layers_2(adaptativeMaxPool2d);
+ if (result == null) result = casePooling_layers(adaptativeMaxPool2d);
+ if (result == null) result = caseModel(adaptativeMaxPool2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.ADAPTATIVE_MAX_POOL3D: {
+ AdaptativeMaxPool3d adaptativeMaxPool3d = (AdaptativeMaxPool3d)theEObject;
+ T result = caseAdaptativeMaxPool3d(adaptativeMaxPool3d);
+ if (result == null) result = caseAdaptativeMaxPool(adaptativeMaxPool3d);
+ if (result == null) result = casePooling_layers_2(adaptativeMaxPool3d);
+ if (result == null) result = casePooling_layers(adaptativeMaxPool3d);
+ if (result == null) result = caseModel(adaptativeMaxPool3d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.ADAPTIVE_AVG_POOL3D: {
+ AdaptiveAvgPool3d adaptiveAvgPool3d = (AdaptiveAvgPool3d)theEObject;
+ T result = caseAdaptiveAvgPool3d(adaptiveAvgPool3d);
+ if (result == null) result = casePooling_layers_2(adaptiveAvgPool3d);
+ if (result == null) result = casePooling_layers(adaptiveAvgPool3d);
+ if (result == null) result = caseModel(adaptiveAvgPool3d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.ADAPTIVE_AVG_POOL2D: {
+ AdaptiveAvgPool2d adaptiveAvgPool2d = (AdaptiveAvgPool2d)theEObject;
+ T result = caseAdaptiveAvgPool2d(adaptiveAvgPool2d);
+ if (result == null) result = casePooling_layers_2(adaptiveAvgPool2d);
+ if (result == null) result = casePooling_layers(adaptiveAvgPool2d);
+ if (result == null) result = caseModel(adaptiveAvgPool2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.ADAPTIVE_AVG_POOL1D: {
+ AdaptiveAvgPool1d adaptiveAvgPool1d = (AdaptiveAvgPool1d)theEObject;
+ T result = caseAdaptiveAvgPool1d(adaptiveAvgPool1d);
+ if (result == null) result = casePooling_layers_2(adaptiveAvgPool1d);
+ if (result == null) result = casePooling_layers(adaptiveAvgPool1d);
+ if (result == null) result = caseModel(adaptiveAvgPool1d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.POOLING_LAYERS_11: {
+ Pooling_layers_1_1 pooling_layers_1_1 = (Pooling_layers_1_1)theEObject;
+ T result = casePooling_layers_1_1(pooling_layers_1_1);
+ if (result == null) result = casePooling_layers_1(pooling_layers_1_1);
+ if (result == null) result = casePooling_layers(pooling_layers_1_1);
+ if (result == null) result = caseModel(pooling_layers_1_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.MAX_POOL1D: {
+ MaxPool1d maxPool1d = (MaxPool1d)theEObject;
+ T result = caseMaxPool1d(maxPool1d);
+ if (result == null) result = caseMaxPool(maxPool1d);
+ if (result == null) result = casePooling_layers_1_1_1_1(maxPool1d);
+ if (result == null) result = casePooling_layers_1_1_1(maxPool1d);
+ if (result == null) result = casePooling_layers_1_1(maxPool1d);
+ if (result == null) result = casePooling_layers_1(maxPool1d);
+ if (result == null) result = casePooling_layers(maxPool1d);
+ if (result == null) result = caseModel(maxPool1d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.MAX_POOL: {
+ MaxPool maxPool = (MaxPool)theEObject;
+ T result = caseMaxPool(maxPool);
+ if (result == null) result = casePooling_layers_1_1_1_1(maxPool);
+ if (result == null) result = casePooling_layers_1_1_1(maxPool);
+ if (result == null) result = casePooling_layers_1_1(maxPool);
+ if (result == null) result = casePooling_layers_1(maxPool);
+ if (result == null) result = casePooling_layers(maxPool);
+ if (result == null) result = caseModel(maxPool);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.POOLING_LAYERS_1111: {
+ Pooling_layers_1_1_1_1 pooling_layers_1_1_1_1 = (Pooling_layers_1_1_1_1)theEObject;
+ T result = casePooling_layers_1_1_1_1(pooling_layers_1_1_1_1);
+ if (result == null) result = casePooling_layers_1_1_1(pooling_layers_1_1_1_1);
+ if (result == null) result = casePooling_layers_1_1(pooling_layers_1_1_1_1);
+ if (result == null) result = casePooling_layers_1(pooling_layers_1_1_1_1);
+ if (result == null) result = casePooling_layers(pooling_layers_1_1_1_1);
+ if (result == null) result = caseModel(pooling_layers_1_1_1_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.POOLING_LAYERS_111: {
+ Pooling_layers_1_1_1 pooling_layers_1_1_1 = (Pooling_layers_1_1_1)theEObject;
+ T result = casePooling_layers_1_1_1(pooling_layers_1_1_1);
+ if (result == null) result = casePooling_layers_1_1(pooling_layers_1_1_1);
+ if (result == null) result = casePooling_layers_1(pooling_layers_1_1_1);
+ if (result == null) result = casePooling_layers(pooling_layers_1_1_1);
+ if (result == null) result = caseModel(pooling_layers_1_1_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.MAX_UNPOOL1D: {
+ MaxUnpool1d maxUnpool1d = (MaxUnpool1d)theEObject;
+ T result = caseMaxUnpool1d(maxUnpool1d);
+ if (result == null) result = casePooling_layers_1_1_1(maxUnpool1d);
+ if (result == null) result = casePooling_layers_1_1(maxUnpool1d);
+ if (result == null) result = casePooling_layers_1(maxUnpool1d);
+ if (result == null) result = casePooling_layers(maxUnpool1d);
+ if (result == null) result = caseModel(maxUnpool1d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.AVG_POOL1D: {
+ AvgPool1d avgPool1d = (AvgPool1d)theEObject;
+ T result = caseAvgPool1d(avgPool1d);
+ if (result == null) result = casePooling_layers_1_1_2_1(avgPool1d);
+ if (result == null) result = casePooling_layers_1_1_1_1(avgPool1d);
+ if (result == null) result = casePooling_layers_1_1_1(avgPool1d);
+ if (result == null) result = casePooling_layers_1_1(avgPool1d);
+ if (result == null) result = casePooling_layers_1(avgPool1d);
+ if (result == null) result = casePooling_layers(avgPool1d);
+ if (result == null) result = caseModel(avgPool1d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.POOLING_LAYERS_1121: {
+ Pooling_layers_1_1_2_1 pooling_layers_1_1_2_1 = (Pooling_layers_1_1_2_1)theEObject;
+ T result = casePooling_layers_1_1_2_1(pooling_layers_1_1_2_1);
+ if (result == null) result = casePooling_layers_1_1_1_1(pooling_layers_1_1_2_1);
+ if (result == null) result = casePooling_layers_1_1_1(pooling_layers_1_1_2_1);
+ if (result == null) result = casePooling_layers_1_1(pooling_layers_1_1_2_1);
+ if (result == null) result = casePooling_layers_1(pooling_layers_1_1_2_1);
+ if (result == null) result = casePooling_layers(pooling_layers_1_1_2_1);
+ if (result == null) result = caseModel(pooling_layers_1_1_2_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.MAX_UNPOOL2D: {
+ MaxUnpool2d maxUnpool2d = (MaxUnpool2d)theEObject;
+ T result = caseMaxUnpool2d(maxUnpool2d);
+ if (result == null) result = casePooling_layers_1_1_1(maxUnpool2d);
+ if (result == null) result = casePooling_layers_1_1(maxUnpool2d);
+ if (result == null) result = casePooling_layers_1(maxUnpool2d);
+ if (result == null) result = casePooling_layers(maxUnpool2d);
+ if (result == null) result = caseModel(maxUnpool2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.MAX_UNPOOL3D: {
+ MaxUnpool3d maxUnpool3d = (MaxUnpool3d)theEObject;
+ T result = caseMaxUnpool3d(maxUnpool3d);
+ if (result == null) result = casePooling_layers_1_1_1(maxUnpool3d);
+ if (result == null) result = casePooling_layers_1_1(maxUnpool3d);
+ if (result == null) result = casePooling_layers_1(maxUnpool3d);
+ if (result == null) result = casePooling_layers(maxUnpool3d);
+ if (result == null) result = caseModel(maxUnpool3d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.POOLING_LAYERS_112: {
+ Pooling_layers_1_1_2 pooling_layers_1_1_2 = (Pooling_layers_1_1_2)theEObject;
+ T result = casePooling_layers_1_1_2(pooling_layers_1_1_2);
+ if (result == null) result = casePooling_layers_1_1(pooling_layers_1_1_2);
+ if (result == null) result = casePooling_layers_1(pooling_layers_1_1_2);
+ if (result == null) result = casePooling_layers(pooling_layers_1_1_2);
+ if (result == null) result = caseModel(pooling_layers_1_1_2);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.LP_POOL1D: {
+ LPPool1d lpPool1d = (LPPool1d)theEObject;
+ T result = caseLPPool1d(lpPool1d);
+ if (result == null) result = casePooling_layers_1_1_2(lpPool1d);
+ if (result == null) result = casePooling_layers_1_1(lpPool1d);
+ if (result == null) result = casePooling_layers_1(lpPool1d);
+ if (result == null) result = casePooling_layers(lpPool1d);
+ if (result == null) result = caseModel(lpPool1d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.LP_POOL2D: {
+ LPPool2d lpPool2d = (LPPool2d)theEObject;
+ T result = caseLPPool2d(lpPool2d);
+ if (result == null) result = casePooling_layers_1_1_2(lpPool2d);
+ if (result == null) result = casePooling_layers_1_1(lpPool2d);
+ if (result == null) result = casePooling_layers_1(lpPool2d);
+ if (result == null) result = casePooling_layers(lpPool2d);
+ if (result == null) result = caseModel(lpPool2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.AVG_POOL2D3D: {
+ AvgPool2d3d avgPool2d3d = (AvgPool2d3d)theEObject;
+ T result = caseAvgPool2d3d(avgPool2d3d);
+ if (result == null) result = casePooling_layers_1_1_2_1(avgPool2d3d);
+ if (result == null) result = casePooling_layers_1_1_1_1(avgPool2d3d);
+ if (result == null) result = casePooling_layers_1_1_1(avgPool2d3d);
+ if (result == null) result = casePooling_layers_1_1(avgPool2d3d);
+ if (result == null) result = casePooling_layers_1(avgPool2d3d);
+ if (result == null) result = casePooling_layers(avgPool2d3d);
+ if (result == null) result = caseModel(avgPool2d3d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.AVG_POOL2D: {
+ AvgPool2d avgPool2d = (AvgPool2d)theEObject;
+ T result = caseAvgPool2d(avgPool2d);
+ if (result == null) result = caseAvgPool2d3d(avgPool2d);
+ if (result == null) result = casePooling_layers_1_1_2_1(avgPool2d);
+ if (result == null) result = casePooling_layers_1_1_1_1(avgPool2d);
+ if (result == null) result = casePooling_layers_1_1_1(avgPool2d);
+ if (result == null) result = casePooling_layers_1_1(avgPool2d);
+ if (result == null) result = casePooling_layers_1(avgPool2d);
+ if (result == null) result = casePooling_layers(avgPool2d);
+ if (result == null) result = caseModel(avgPool2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.AVG_POOL3D: {
+ AvgPool3d avgPool3d = (AvgPool3d)theEObject;
+ T result = caseAvgPool3d(avgPool3d);
+ if (result == null) result = caseAvgPool2d3d(avgPool3d);
+ if (result == null) result = casePooling_layers_1_1_2_1(avgPool3d);
+ if (result == null) result = casePooling_layers_1_1_1_1(avgPool3d);
+ if (result == null) result = casePooling_layers_1_1_1(avgPool3d);
+ if (result == null) result = casePooling_layers_1_1(avgPool3d);
+ if (result == null) result = casePooling_layers_1(avgPool3d);
+ if (result == null) result = casePooling_layers(avgPool3d);
+ if (result == null) result = caseModel(avgPool3d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.MAX_POOL2D: {
+ MaxPool2d maxPool2d = (MaxPool2d)theEObject;
+ T result = caseMaxPool2d(maxPool2d);
+ if (result == null) result = caseMaxPool(maxPool2d);
+ if (result == null) result = casePooling_layers_1_1_1_1(maxPool2d);
+ if (result == null) result = casePooling_layers_1_1_1(maxPool2d);
+ if (result == null) result = casePooling_layers_1_1(maxPool2d);
+ if (result == null) result = casePooling_layers_1(maxPool2d);
+ if (result == null) result = casePooling_layers(maxPool2d);
+ if (result == null) result = caseModel(maxPool2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.MAX_POOL3D: {
+ MaxPool3d maxPool3d = (MaxPool3d)theEObject;
+ T result = caseMaxPool3d(maxPool3d);
+ if (result == null) result = caseMaxPool(maxPool3d);
+ if (result == null) result = casePooling_layers_1_1_1_1(maxPool3d);
+ if (result == null) result = casePooling_layers_1_1_1(maxPool3d);
+ if (result == null) result = casePooling_layers_1_1(maxPool3d);
+ if (result == null) result = casePooling_layers_1(maxPool3d);
+ if (result == null) result = casePooling_layers(maxPool3d);
+ if (result == null) result = caseModel(maxPool3d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Pooling_layersPackage.FRACTIONAL_MAX_POOL2D: {
+ FractionalMaxPool2d fractionalMaxPool2d = (FractionalMaxPool2d)theEObject;
+ T result = caseFractionalMaxPool2d(fractionalMaxPool2d);
+ if (result == null) result = casePooling_layers_1(fractionalMaxPool2d);
+ if (result == null) result = casePooling_layers(fractionalMaxPool2d);
+ if (result == null) result = caseModel(fractionalMaxPool2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Pooling layers</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Pooling layers</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePooling_layers(Pooling_layers object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Pooling layers 1</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Pooling layers 1</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePooling_layers_1(Pooling_layers_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Pooling layers 2</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Pooling layers 2</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePooling_layers_2(Pooling_layers_2 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Adaptative Max Pool</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Adaptative Max Pool</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdaptativeMaxPool(AdaptativeMaxPool object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Adaptative Max Pool1d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Adaptative Max Pool1d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdaptativeMaxPool1d(AdaptativeMaxPool1d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Adaptative Max Pool2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Adaptative Max Pool2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdaptativeMaxPool2d(AdaptativeMaxPool2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Adaptative Max Pool3d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Adaptative Max Pool3d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdaptativeMaxPool3d(AdaptativeMaxPool3d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Adaptive Avg Pool3d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Adaptive Avg Pool3d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdaptiveAvgPool3d(AdaptiveAvgPool3d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Adaptive Avg Pool2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Adaptive Avg Pool2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdaptiveAvgPool2d(AdaptiveAvgPool2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Adaptive Avg Pool1d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Adaptive Avg Pool1d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdaptiveAvgPool1d(AdaptiveAvgPool1d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Pooling layers 11</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Pooling layers 11</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePooling_layers_1_1(Pooling_layers_1_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Max Pool1d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Max Pool1d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMaxPool1d(MaxPool1d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Max Pool</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Max Pool</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMaxPool(MaxPool object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Pooling layers 1111</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Pooling layers 1111</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePooling_layers_1_1_1_1(Pooling_layers_1_1_1_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Pooling layers 111</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Pooling layers 111</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePooling_layers_1_1_1(Pooling_layers_1_1_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Max Unpool1d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Max Unpool1d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMaxUnpool1d(MaxUnpool1d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Avg Pool1d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Avg Pool1d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAvgPool1d(AvgPool1d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Pooling layers 1121</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Pooling layers 1121</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePooling_layers_1_1_2_1(Pooling_layers_1_1_2_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Max Unpool2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Max Unpool2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMaxUnpool2d(MaxUnpool2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Max Unpool3d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Max Unpool3d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMaxUnpool3d(MaxUnpool3d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Pooling layers 112</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Pooling layers 112</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePooling_layers_1_1_2(Pooling_layers_1_1_2 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>LP Pool1d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>LP Pool1d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLPPool1d(LPPool1d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>LP Pool2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>LP Pool2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLPPool2d(LPPool2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Avg Pool2d3d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Avg Pool2d3d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAvgPool2d3d(AvgPool2d3d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Avg Pool2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Avg Pool2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAvgPool2d(AvgPool2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Avg Pool3d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Avg Pool3d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAvgPool3d(AvgPool3d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Max Pool2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Max Pool2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMaxPool2d(MaxPool2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Max Pool3d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Max Pool3d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMaxPool3d(MaxPool3d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Fractional Max Pool2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Fractional Max Pool2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFractionalMaxPool2d(FractionalMaxPool2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Pooling_layersSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/GRU.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/GRU.java
new file mode 100644
index 0000000..a99ecff
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/GRU.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>GRU</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getGRU()
+ * @model
+ * @generated
+ */
+public interface GRU extends Recurrent_layers_1 {
+} // GRU
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/GRUCell.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/GRUCell.java
new file mode 100644
index 0000000..63fa331
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/GRUCell.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>GRU Cell</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getGRUCell()
+ * @model
+ * @generated
+ */
+public interface GRUCell extends Recurrent_layers {
+} // GRUCell
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/LSTM.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/LSTM.java
new file mode 100644
index 0000000..5141fc4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/LSTM.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>LSTM</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getLSTM()
+ * @model
+ * @generated
+ */
+public interface LSTM extends Recurrent_layers_1 {
+} // LSTM
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/LSTMCell.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/LSTMCell.java
new file mode 100644
index 0000000..20a6d9f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/LSTMCell.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>LSTM Cell</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getLSTMCell()
+ * @model
+ * @generated
+ */
+public interface LSTMCell extends Recurrent_layers {
+} // LSTMCell
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/RNN.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/RNN.java
new file mode 100644
index 0000000..881ee8f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/RNN.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>RNN</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNN#getNonlinearity <em>Nonlinearity</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRNN()
+ * @model
+ * @generated
+ */
+public interface RNN extends Recurrent_layers_1 {
+ /**
+ * Returns the value of the '<em><b>Nonlinearity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Nonlinearity</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Nonlinearity</em>' attribute.
+ * @see #setNonlinearity(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRNN_Nonlinearity()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getNonlinearity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNN#getNonlinearity <em>Nonlinearity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Nonlinearity</em>' attribute.
+ * @see #getNonlinearity()
+ * @generated
+ */
+ void setNonlinearity(String value);
+
+} // RNN
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/RNNCell.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/RNNCell.java
new file mode 100644
index 0000000..07bf24a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/RNNCell.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>RNN Cell</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNNCell#getNonlinearity <em>Nonlinearity</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRNNCell()
+ * @model
+ * @generated
+ */
+public interface RNNCell extends Recurrent_layers {
+ /**
+ * Returns the value of the '<em><b>Nonlinearity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Nonlinearity</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Nonlinearity</em>' attribute.
+ * @see #setNonlinearity(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRNNCell_Nonlinearity()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getNonlinearity();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNNCell#getNonlinearity <em>Nonlinearity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Nonlinearity</em>' attribute.
+ * @see #getNonlinearity()
+ * @generated
+ */
+ void setNonlinearity(String value);
+
+} // RNNCell
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/Recurrent_layers.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/Recurrent_layers.java
new file mode 100644
index 0000000..8161bf1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/Recurrent_layers.java
@@ -0,0 +1,113 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Recurrent layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers#getInput_size <em>Input size</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers#getHidden_size <em>Hidden size</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers#isBias_pt <em>Bias pt</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Recurrent_layers extends Model {
+ /**
+ * Returns the value of the '<em><b>Input size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Input size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Input size</em>' attribute.
+ * @see #setInput_size(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_Input_size()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getInput_size();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers#getInput_size <em>Input size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Input size</em>' attribute.
+ * @see #getInput_size()
+ * @generated
+ */
+ void setInput_size(int value);
+
+ /**
+ * Returns the value of the '<em><b>Hidden size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Hidden size</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Hidden size</em>' attribute.
+ * @see #setHidden_size(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_Hidden_size()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getHidden_size();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers#getHidden_size <em>Hidden size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Hidden size</em>' attribute.
+ * @see #getHidden_size()
+ * @generated
+ */
+ void setHidden_size(int value);
+
+ /**
+ * Returns the value of the '<em><b>Bias pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bias pt</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bias pt</em>' attribute.
+ * @see #setBias_pt(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_Bias_pt()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isBias_pt();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers#isBias_pt <em>Bias pt</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bias pt</em>' attribute.
+ * @see #isBias_pt()
+ * @generated
+ */
+ void setBias_pt(boolean value);
+
+} // Recurrent_layers
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/Recurrent_layersFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/Recurrent_layersFactory.java
new file mode 100644
index 0000000..daacdcb
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/Recurrent_layersFactory.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage
+ * @generated
+ */
+public interface Recurrent_layersFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Recurrent_layersFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>RNN Cell</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>RNN Cell</em>'.
+ * @generated
+ */
+ RNNCell createRNNCell();
+
+ /**
+ * Returns a new object of class '<em>LSTM Cell</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>LSTM Cell</em>'.
+ * @generated
+ */
+ LSTMCell createLSTMCell();
+
+ /**
+ * Returns a new object of class '<em>GRU Cell</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>GRU Cell</em>'.
+ * @generated
+ */
+ GRUCell createGRUCell();
+
+ /**
+ * Returns a new object of class '<em>RNN</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>RNN</em>'.
+ * @generated
+ */
+ RNN createRNN();
+
+ /**
+ * Returns a new object of class '<em>LSTM</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>LSTM</em>'.
+ * @generated
+ */
+ LSTM createLSTM();
+
+ /**
+ * Returns a new object of class '<em>GRU</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>GRU</em>'.
+ * @generated
+ */
+ GRU createGRU();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Recurrent_layersPackage getRecurrent_layersPackage();
+
+} //Recurrent_layersFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/Recurrent_layersPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/Recurrent_layersPackage.java
new file mode 100644
index 0000000..9c2e9f9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/Recurrent_layersPackage.java
@@ -0,0 +1,2083 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Recurrent_layersPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Recurrent_layers"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/recurrent/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Recurrent_layers"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Recurrent_layersPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersImpl <em>Recurrent layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getRecurrent_layers()
+ * @generated
+ */
+ int RECURRENT_LAYERS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Input size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS__INPUT_SIZE = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Hidden size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS__HIDDEN_SIZE = ModulePackage.MODEL_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Bias pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS__BIAS_PT = ModulePackage.MODEL_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Recurrent layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 3;
+
+ /**
+ * The number of operations of the '<em>Recurrent layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl <em>Recurrent layers 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getRecurrent_layers_1()
+ * @generated
+ */
+ int RECURRENT_LAYERS_1 = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__BASE_CLASS = RECURRENT_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__NAME = RECURRENT_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__DATA = RECURRENT_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__REQUIRES_GRAD = RECURRENT_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__SUB_MODULE = RECURRENT_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__OPTIMIZER = RECURRENT_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__LOSS = RECURRENT_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Input size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__INPUT_SIZE = RECURRENT_LAYERS__INPUT_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Hidden size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__HIDDEN_SIZE = RECURRENT_LAYERS__HIDDEN_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Bias pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__BIAS_PT = RECURRENT_LAYERS__BIAS_PT;
+
+ /**
+ * The feature id for the '<em><b>Num layers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__NUM_LAYERS = RECURRENT_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Batch first pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__BATCH_FIRST_PT = RECURRENT_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__DROPOUT = RECURRENT_LAYERS_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Bidirectional pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__BIDIRECTIONAL_PT = RECURRENT_LAYERS_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__ACTIVATION = RECURRENT_LAYERS_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Recurrent activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__RECURRENT_ACTIVATION = RECURRENT_LAYERS_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Use bias</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__USE_BIAS = RECURRENT_LAYERS_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__KERNEL_INITIALIZER = RECURRENT_LAYERS_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Recurrent initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__RECURRENT_INITIALIZER = RECURRENT_LAYERS_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__BIAS_INITIALIZER = RECURRENT_LAYERS_FEATURE_COUNT + 9;
+
+ /**
+ * The feature id for the '<em><b>Return sequences</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__RETURN_SEQUENCES = RECURRENT_LAYERS_FEATURE_COUNT + 10;
+
+ /**
+ * The feature id for the '<em><b>Return state</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__RETURN_STATE = RECURRENT_LAYERS_FEATURE_COUNT + 11;
+
+ /**
+ * The feature id for the '<em><b>Bidirectional k</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__BIDIRECTIONAL_K = RECURRENT_LAYERS_FEATURE_COUNT + 12;
+
+ /**
+ * The feature id for the '<em><b>Recurrent dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1__RECURRENT_DROPOUT = RECURRENT_LAYERS_FEATURE_COUNT + 13;
+
+ /**
+ * The number of structural features of the '<em>Recurrent layers 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1_FEATURE_COUNT = RECURRENT_LAYERS_FEATURE_COUNT + 14;
+
+ /**
+ * The number of operations of the '<em>Recurrent layers 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RECURRENT_LAYERS_1_OPERATION_COUNT = RECURRENT_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.RNNCellImpl <em>RNN Cell</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.RNNCellImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getRNNCell()
+ * @generated
+ */
+ int RNN_CELL = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_CELL__BASE_CLASS = RECURRENT_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_CELL__NAME = RECURRENT_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_CELL__DATA = RECURRENT_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_CELL__REQUIRES_GRAD = RECURRENT_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_CELL__SUB_MODULE = RECURRENT_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_CELL__OPTIMIZER = RECURRENT_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_CELL__LOSS = RECURRENT_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Input size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_CELL__INPUT_SIZE = RECURRENT_LAYERS__INPUT_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Hidden size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_CELL__HIDDEN_SIZE = RECURRENT_LAYERS__HIDDEN_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Bias pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_CELL__BIAS_PT = RECURRENT_LAYERS__BIAS_PT;
+
+ /**
+ * The feature id for the '<em><b>Nonlinearity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_CELL__NONLINEARITY = RECURRENT_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>RNN Cell</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_CELL_FEATURE_COUNT = RECURRENT_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>RNN Cell</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_CELL_OPERATION_COUNT = RECURRENT_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.LSTMCellImpl <em>LSTM Cell</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.LSTMCellImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getLSTMCell()
+ * @generated
+ */
+ int LSTM_CELL = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM_CELL__BASE_CLASS = RECURRENT_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM_CELL__NAME = RECURRENT_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM_CELL__DATA = RECURRENT_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM_CELL__REQUIRES_GRAD = RECURRENT_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM_CELL__SUB_MODULE = RECURRENT_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM_CELL__OPTIMIZER = RECURRENT_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM_CELL__LOSS = RECURRENT_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Input size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM_CELL__INPUT_SIZE = RECURRENT_LAYERS__INPUT_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Hidden size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM_CELL__HIDDEN_SIZE = RECURRENT_LAYERS__HIDDEN_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Bias pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM_CELL__BIAS_PT = RECURRENT_LAYERS__BIAS_PT;
+
+ /**
+ * The number of structural features of the '<em>LSTM Cell</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM_CELL_FEATURE_COUNT = RECURRENT_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>LSTM Cell</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM_CELL_OPERATION_COUNT = RECURRENT_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.GRUCellImpl <em>GRU Cell</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.GRUCellImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getGRUCell()
+ * @generated
+ */
+ int GRU_CELL = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU_CELL__BASE_CLASS = RECURRENT_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU_CELL__NAME = RECURRENT_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU_CELL__DATA = RECURRENT_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU_CELL__REQUIRES_GRAD = RECURRENT_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU_CELL__SUB_MODULE = RECURRENT_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU_CELL__OPTIMIZER = RECURRENT_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU_CELL__LOSS = RECURRENT_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Input size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU_CELL__INPUT_SIZE = RECURRENT_LAYERS__INPUT_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Hidden size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU_CELL__HIDDEN_SIZE = RECURRENT_LAYERS__HIDDEN_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Bias pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU_CELL__BIAS_PT = RECURRENT_LAYERS__BIAS_PT;
+
+ /**
+ * The number of structural features of the '<em>GRU Cell</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU_CELL_FEATURE_COUNT = RECURRENT_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>GRU Cell</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU_CELL_OPERATION_COUNT = RECURRENT_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.RNNImpl <em>RNN</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.RNNImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getRNN()
+ * @generated
+ */
+ int RNN = 5;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__BASE_CLASS = RECURRENT_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__NAME = RECURRENT_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__DATA = RECURRENT_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__REQUIRES_GRAD = RECURRENT_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__SUB_MODULE = RECURRENT_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__OPTIMIZER = RECURRENT_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__LOSS = RECURRENT_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Input size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__INPUT_SIZE = RECURRENT_LAYERS_1__INPUT_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Hidden size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__HIDDEN_SIZE = RECURRENT_LAYERS_1__HIDDEN_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Bias pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__BIAS_PT = RECURRENT_LAYERS_1__BIAS_PT;
+
+ /**
+ * The feature id for the '<em><b>Num layers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__NUM_LAYERS = RECURRENT_LAYERS_1__NUM_LAYERS;
+
+ /**
+ * The feature id for the '<em><b>Batch first pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__BATCH_FIRST_PT = RECURRENT_LAYERS_1__BATCH_FIRST_PT;
+
+ /**
+ * The feature id for the '<em><b>Dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__DROPOUT = RECURRENT_LAYERS_1__DROPOUT;
+
+ /**
+ * The feature id for the '<em><b>Bidirectional pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__BIDIRECTIONAL_PT = RECURRENT_LAYERS_1__BIDIRECTIONAL_PT;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__ACTIVATION = RECURRENT_LAYERS_1__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Recurrent activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__RECURRENT_ACTIVATION = RECURRENT_LAYERS_1__RECURRENT_ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Use bias</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__USE_BIAS = RECURRENT_LAYERS_1__USE_BIAS;
+
+ /**
+ * The feature id for the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__KERNEL_INITIALIZER = RECURRENT_LAYERS_1__KERNEL_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Recurrent initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__RECURRENT_INITIALIZER = RECURRENT_LAYERS_1__RECURRENT_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__BIAS_INITIALIZER = RECURRENT_LAYERS_1__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Return sequences</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__RETURN_SEQUENCES = RECURRENT_LAYERS_1__RETURN_SEQUENCES;
+
+ /**
+ * The feature id for the '<em><b>Return state</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__RETURN_STATE = RECURRENT_LAYERS_1__RETURN_STATE;
+
+ /**
+ * The feature id for the '<em><b>Bidirectional k</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__BIDIRECTIONAL_K = RECURRENT_LAYERS_1__BIDIRECTIONAL_K;
+
+ /**
+ * The feature id for the '<em><b>Recurrent dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__RECURRENT_DROPOUT = RECURRENT_LAYERS_1__RECURRENT_DROPOUT;
+
+ /**
+ * The feature id for the '<em><b>Nonlinearity</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN__NONLINEARITY = RECURRENT_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>RNN</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_FEATURE_COUNT = RECURRENT_LAYERS_1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>RNN</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RNN_OPERATION_COUNT = RECURRENT_LAYERS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.LSTMImpl <em>LSTM</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.LSTMImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getLSTM()
+ * @generated
+ */
+ int LSTM = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__BASE_CLASS = RECURRENT_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__NAME = RECURRENT_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__DATA = RECURRENT_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__REQUIRES_GRAD = RECURRENT_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__SUB_MODULE = RECURRENT_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__OPTIMIZER = RECURRENT_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__LOSS = RECURRENT_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Input size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__INPUT_SIZE = RECURRENT_LAYERS_1__INPUT_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Hidden size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__HIDDEN_SIZE = RECURRENT_LAYERS_1__HIDDEN_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Bias pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__BIAS_PT = RECURRENT_LAYERS_1__BIAS_PT;
+
+ /**
+ * The feature id for the '<em><b>Num layers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__NUM_LAYERS = RECURRENT_LAYERS_1__NUM_LAYERS;
+
+ /**
+ * The feature id for the '<em><b>Batch first pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__BATCH_FIRST_PT = RECURRENT_LAYERS_1__BATCH_FIRST_PT;
+
+ /**
+ * The feature id for the '<em><b>Dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__DROPOUT = RECURRENT_LAYERS_1__DROPOUT;
+
+ /**
+ * The feature id for the '<em><b>Bidirectional pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__BIDIRECTIONAL_PT = RECURRENT_LAYERS_1__BIDIRECTIONAL_PT;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__ACTIVATION = RECURRENT_LAYERS_1__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Recurrent activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__RECURRENT_ACTIVATION = RECURRENT_LAYERS_1__RECURRENT_ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Use bias</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__USE_BIAS = RECURRENT_LAYERS_1__USE_BIAS;
+
+ /**
+ * The feature id for the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__KERNEL_INITIALIZER = RECURRENT_LAYERS_1__KERNEL_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Recurrent initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__RECURRENT_INITIALIZER = RECURRENT_LAYERS_1__RECURRENT_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__BIAS_INITIALIZER = RECURRENT_LAYERS_1__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Return sequences</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__RETURN_SEQUENCES = RECURRENT_LAYERS_1__RETURN_SEQUENCES;
+
+ /**
+ * The feature id for the '<em><b>Return state</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__RETURN_STATE = RECURRENT_LAYERS_1__RETURN_STATE;
+
+ /**
+ * The feature id for the '<em><b>Bidirectional k</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__BIDIRECTIONAL_K = RECURRENT_LAYERS_1__BIDIRECTIONAL_K;
+
+ /**
+ * The feature id for the '<em><b>Recurrent dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM__RECURRENT_DROPOUT = RECURRENT_LAYERS_1__RECURRENT_DROPOUT;
+
+ /**
+ * The number of structural features of the '<em>LSTM</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM_FEATURE_COUNT = RECURRENT_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>LSTM</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LSTM_OPERATION_COUNT = RECURRENT_LAYERS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.GRUImpl <em>GRU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.GRUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getGRU()
+ * @generated
+ */
+ int GRU = 7;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__BASE_CLASS = RECURRENT_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__NAME = RECURRENT_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__DATA = RECURRENT_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__REQUIRES_GRAD = RECURRENT_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__SUB_MODULE = RECURRENT_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__OPTIMIZER = RECURRENT_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__LOSS = RECURRENT_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Input size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__INPUT_SIZE = RECURRENT_LAYERS_1__INPUT_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Hidden size</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__HIDDEN_SIZE = RECURRENT_LAYERS_1__HIDDEN_SIZE;
+
+ /**
+ * The feature id for the '<em><b>Bias pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__BIAS_PT = RECURRENT_LAYERS_1__BIAS_PT;
+
+ /**
+ * The feature id for the '<em><b>Num layers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__NUM_LAYERS = RECURRENT_LAYERS_1__NUM_LAYERS;
+
+ /**
+ * The feature id for the '<em><b>Batch first pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__BATCH_FIRST_PT = RECURRENT_LAYERS_1__BATCH_FIRST_PT;
+
+ /**
+ * The feature id for the '<em><b>Dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__DROPOUT = RECURRENT_LAYERS_1__DROPOUT;
+
+ /**
+ * The feature id for the '<em><b>Bidirectional pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__BIDIRECTIONAL_PT = RECURRENT_LAYERS_1__BIDIRECTIONAL_PT;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__ACTIVATION = RECURRENT_LAYERS_1__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Recurrent activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__RECURRENT_ACTIVATION = RECURRENT_LAYERS_1__RECURRENT_ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Use bias</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__USE_BIAS = RECURRENT_LAYERS_1__USE_BIAS;
+
+ /**
+ * The feature id for the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__KERNEL_INITIALIZER = RECURRENT_LAYERS_1__KERNEL_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Recurrent initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__RECURRENT_INITIALIZER = RECURRENT_LAYERS_1__RECURRENT_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__BIAS_INITIALIZER = RECURRENT_LAYERS_1__BIAS_INITIALIZER;
+
+ /**
+ * The feature id for the '<em><b>Return sequences</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__RETURN_SEQUENCES = RECURRENT_LAYERS_1__RETURN_SEQUENCES;
+
+ /**
+ * The feature id for the '<em><b>Return state</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__RETURN_STATE = RECURRENT_LAYERS_1__RETURN_STATE;
+
+ /**
+ * The feature id for the '<em><b>Bidirectional k</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__BIDIRECTIONAL_K = RECURRENT_LAYERS_1__BIDIRECTIONAL_K;
+
+ /**
+ * The feature id for the '<em><b>Recurrent dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU__RECURRENT_DROPOUT = RECURRENT_LAYERS_1__RECURRENT_DROPOUT;
+
+ /**
+ * The number of structural features of the '<em>GRU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU_FEATURE_COUNT = RECURRENT_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>GRU</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GRU_OPERATION_COUNT = RECURRENT_LAYERS_1_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers <em>Recurrent layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Recurrent layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers
+ * @generated
+ */
+ EClass getRecurrent_layers();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers#getInput_size <em>Input size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Input size</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers#getInput_size()
+ * @see #getRecurrent_layers()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_Input_size();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers#getHidden_size <em>Hidden size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Hidden size</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers#getHidden_size()
+ * @see #getRecurrent_layers()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_Hidden_size();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers#isBias_pt <em>Bias pt</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bias pt</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers#isBias_pt()
+ * @see #getRecurrent_layers()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_Bias_pt();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1 <em>Recurrent layers 1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Recurrent layers 1</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1
+ * @generated
+ */
+ EClass getRecurrent_layers_1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getNum_layers <em>Num layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Num layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getNum_layers()
+ * @see #getRecurrent_layers_1()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_1_Num_layers();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isBatch_first_pt <em>Batch first pt</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Batch first pt</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isBatch_first_pt()
+ * @see #getRecurrent_layers_1()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_1_Batch_first_pt();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getDropout <em>Dropout</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dropout</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getDropout()
+ * @see #getRecurrent_layers_1()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_1_Dropout();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isBidirectional_pt <em>Bidirectional pt</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bidirectional pt</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isBidirectional_pt()
+ * @see #getRecurrent_layers_1()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_1_Bidirectional_pt();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getActivation <em>Activation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Activation</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getActivation()
+ * @see #getRecurrent_layers_1()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_1_Activation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getRecurrent_activation <em>Recurrent activation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Recurrent activation</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getRecurrent_activation()
+ * @see #getRecurrent_layers_1()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_1_Recurrent_activation();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isUse_bias <em>Use bias</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Use bias</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isUse_bias()
+ * @see #getRecurrent_layers_1()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_1_Use_bias();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getKernel_initializer <em>Kernel initializer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Kernel initializer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getKernel_initializer()
+ * @see #getRecurrent_layers_1()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_1_Kernel_initializer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getRecurrent_initializer <em>Recurrent initializer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Recurrent initializer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getRecurrent_initializer()
+ * @see #getRecurrent_layers_1()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_1_Recurrent_initializer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getBias_initializer <em>Bias initializer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bias initializer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getBias_initializer()
+ * @see #getRecurrent_layers_1()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_1_Bias_initializer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isReturn_sequences <em>Return sequences</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Return sequences</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isReturn_sequences()
+ * @see #getRecurrent_layers_1()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_1_Return_sequences();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isReturn_state <em>Return state</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Return state</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isReturn_state()
+ * @see #getRecurrent_layers_1()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_1_Return_state();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getBidirectional_k <em>Bidirectional k</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Bidirectional k</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getBidirectional_k()
+ * @see #getRecurrent_layers_1()
+ * @generated
+ */
+ EReference getRecurrent_layers_1_Bidirectional_k();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getRecurrent_dropout <em>Recurrent dropout</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Recurrent dropout</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getRecurrent_dropout()
+ * @see #getRecurrent_layers_1()
+ * @generated
+ */
+ EAttribute getRecurrent_layers_1_Recurrent_dropout();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNNCell <em>RNN Cell</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>RNN Cell</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNNCell
+ * @generated
+ */
+ EClass getRNNCell();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNNCell#getNonlinearity <em>Nonlinearity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Nonlinearity</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNNCell#getNonlinearity()
+ * @see #getRNNCell()
+ * @generated
+ */
+ EAttribute getRNNCell_Nonlinearity();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.LSTMCell <em>LSTM Cell</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>LSTM Cell</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.LSTMCell
+ * @generated
+ */
+ EClass getLSTMCell();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.GRUCell <em>GRU Cell</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>GRU Cell</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.GRUCell
+ * @generated
+ */
+ EClass getGRUCell();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNN <em>RNN</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>RNN</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNN
+ * @generated
+ */
+ EClass getRNN();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNN#getNonlinearity <em>Nonlinearity</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Nonlinearity</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNN#getNonlinearity()
+ * @see #getRNN()
+ * @generated
+ */
+ EAttribute getRNN_Nonlinearity();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.LSTM <em>LSTM</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>LSTM</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.LSTM
+ * @generated
+ */
+ EClass getLSTM();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.GRU <em>GRU</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>GRU</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.GRU
+ * @generated
+ */
+ EClass getGRU();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Recurrent_layersFactory getRecurrent_layersFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersImpl <em>Recurrent layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getRecurrent_layers()
+ * @generated
+ */
+ EClass RECURRENT_LAYERS = eINSTANCE.getRecurrent_layers();
+
+ /**
+ * The meta object literal for the '<em><b>Input size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS__INPUT_SIZE = eINSTANCE.getRecurrent_layers_Input_size();
+
+ /**
+ * The meta object literal for the '<em><b>Hidden size</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS__HIDDEN_SIZE = eINSTANCE.getRecurrent_layers_Hidden_size();
+
+ /**
+ * The meta object literal for the '<em><b>Bias pt</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS__BIAS_PT = eINSTANCE.getRecurrent_layers_Bias_pt();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl <em>Recurrent layers 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getRecurrent_layers_1()
+ * @generated
+ */
+ EClass RECURRENT_LAYERS_1 = eINSTANCE.getRecurrent_layers_1();
+
+ /**
+ * The meta object literal for the '<em><b>Num layers</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS_1__NUM_LAYERS = eINSTANCE.getRecurrent_layers_1_Num_layers();
+
+ /**
+ * The meta object literal for the '<em><b>Batch first pt</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS_1__BATCH_FIRST_PT = eINSTANCE.getRecurrent_layers_1_Batch_first_pt();
+
+ /**
+ * The meta object literal for the '<em><b>Dropout</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS_1__DROPOUT = eINSTANCE.getRecurrent_layers_1_Dropout();
+
+ /**
+ * The meta object literal for the '<em><b>Bidirectional pt</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS_1__BIDIRECTIONAL_PT = eINSTANCE.getRecurrent_layers_1_Bidirectional_pt();
+
+ /**
+ * The meta object literal for the '<em><b>Activation</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS_1__ACTIVATION = eINSTANCE.getRecurrent_layers_1_Activation();
+
+ /**
+ * The meta object literal for the '<em><b>Recurrent activation</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS_1__RECURRENT_ACTIVATION = eINSTANCE.getRecurrent_layers_1_Recurrent_activation();
+
+ /**
+ * The meta object literal for the '<em><b>Use bias</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS_1__USE_BIAS = eINSTANCE.getRecurrent_layers_1_Use_bias();
+
+ /**
+ * The meta object literal for the '<em><b>Kernel initializer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS_1__KERNEL_INITIALIZER = eINSTANCE.getRecurrent_layers_1_Kernel_initializer();
+
+ /**
+ * The meta object literal for the '<em><b>Recurrent initializer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS_1__RECURRENT_INITIALIZER = eINSTANCE.getRecurrent_layers_1_Recurrent_initializer();
+
+ /**
+ * The meta object literal for the '<em><b>Bias initializer</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS_1__BIAS_INITIALIZER = eINSTANCE.getRecurrent_layers_1_Bias_initializer();
+
+ /**
+ * The meta object literal for the '<em><b>Return sequences</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS_1__RETURN_SEQUENCES = eINSTANCE.getRecurrent_layers_1_Return_sequences();
+
+ /**
+ * The meta object literal for the '<em><b>Return state</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS_1__RETURN_STATE = eINSTANCE.getRecurrent_layers_1_Return_state();
+
+ /**
+ * The meta object literal for the '<em><b>Bidirectional k</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference RECURRENT_LAYERS_1__BIDIRECTIONAL_K = eINSTANCE.getRecurrent_layers_1_Bidirectional_k();
+
+ /**
+ * The meta object literal for the '<em><b>Recurrent dropout</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RECURRENT_LAYERS_1__RECURRENT_DROPOUT = eINSTANCE.getRecurrent_layers_1_Recurrent_dropout();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.RNNCellImpl <em>RNN Cell</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.RNNCellImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getRNNCell()
+ * @generated
+ */
+ EClass RNN_CELL = eINSTANCE.getRNNCell();
+
+ /**
+ * The meta object literal for the '<em><b>Nonlinearity</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RNN_CELL__NONLINEARITY = eINSTANCE.getRNNCell_Nonlinearity();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.LSTMCellImpl <em>LSTM Cell</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.LSTMCellImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getLSTMCell()
+ * @generated
+ */
+ EClass LSTM_CELL = eINSTANCE.getLSTMCell();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.GRUCellImpl <em>GRU Cell</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.GRUCellImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getGRUCell()
+ * @generated
+ */
+ EClass GRU_CELL = eINSTANCE.getGRUCell();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.RNNImpl <em>RNN</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.RNNImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getRNN()
+ * @generated
+ */
+ EClass RNN = eINSTANCE.getRNN();
+
+ /**
+ * The meta object literal for the '<em><b>Nonlinearity</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RNN__NONLINEARITY = eINSTANCE.getRNN_Nonlinearity();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.LSTMImpl <em>LSTM</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.LSTMImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getLSTM()
+ * @generated
+ */
+ EClass LSTM = eINSTANCE.getLSTM();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.GRUImpl <em>GRU</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.GRUImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl#getGRU()
+ * @generated
+ */
+ EClass GRU = eINSTANCE.getGRU();
+
+ }
+
+} //Recurrent_layersPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/Recurrent_layers_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/Recurrent_layers_1.java
new file mode 100644
index 0000000..4c2deca
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/Recurrent_layers_1.java
@@ -0,0 +1,409 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Recurrent layers 1</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getNum_layers <em>Num layers</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isBatch_first_pt <em>Batch first pt</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getDropout <em>Dropout</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isBidirectional_pt <em>Bidirectional pt</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getActivation <em>Activation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getRecurrent_activation <em>Recurrent activation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isUse_bias <em>Use bias</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getKernel_initializer <em>Kernel initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getRecurrent_initializer <em>Recurrent initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getBias_initializer <em>Bias initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isReturn_sequences <em>Return sequences</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isReturn_state <em>Return state</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getBidirectional_k <em>Bidirectional k</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getRecurrent_dropout <em>Recurrent dropout</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Recurrent_layers_1 extends Recurrent_layers {
+ /**
+ * Returns the value of the '<em><b>Num layers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Num layers</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Num layers</em>' attribute.
+ * @see #setNum_layers(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1_Num_layers()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getNum_layers();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getNum_layers <em>Num layers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Num layers</em>' attribute.
+ * @see #getNum_layers()
+ * @generated
+ */
+ void setNum_layers(int value);
+
+ /**
+ * Returns the value of the '<em><b>Batch first pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Batch first pt</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Batch first pt</em>' attribute.
+ * @see #setBatch_first_pt(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1_Batch_first_pt()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isBatch_first_pt();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isBatch_first_pt <em>Batch first pt</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Batch first pt</em>' attribute.
+ * @see #isBatch_first_pt()
+ * @generated
+ */
+ void setBatch_first_pt(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dropout</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dropout</em>' attribute.
+ * @see #setDropout(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1_Dropout()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getDropout();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getDropout <em>Dropout</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dropout</em>' attribute.
+ * @see #getDropout()
+ * @generated
+ */
+ void setDropout(double value);
+
+ /**
+ * Returns the value of the '<em><b>Bidirectional pt</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bidirectional pt</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bidirectional pt</em>' attribute.
+ * @see #setBidirectional_pt(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1_Bidirectional_pt()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isBidirectional_pt();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isBidirectional_pt <em>Bidirectional pt</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bidirectional pt</em>' attribute.
+ * @see #isBidirectional_pt()
+ * @generated
+ */
+ void setBidirectional_pt(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Activation</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Activation</em>' attribute.
+ * @see #setActivation(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1_Activation()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getActivation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getActivation <em>Activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Activation</em>' attribute.
+ * @see #getActivation()
+ * @generated
+ */
+ void setActivation(String value);
+
+ /**
+ * Returns the value of the '<em><b>Recurrent activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Recurrent activation</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Recurrent activation</em>' attribute.
+ * @see #setRecurrent_activation(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1_Recurrent_activation()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getRecurrent_activation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getRecurrent_activation <em>Recurrent activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Recurrent activation</em>' attribute.
+ * @see #getRecurrent_activation()
+ * @generated
+ */
+ void setRecurrent_activation(String value);
+
+ /**
+ * Returns the value of the '<em><b>Use bias</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Use bias</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Use bias</em>' attribute.
+ * @see #setUse_bias(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1_Use_bias()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isUse_bias();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isUse_bias <em>Use bias</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Use bias</em>' attribute.
+ * @see #isUse_bias()
+ * @generated
+ */
+ void setUse_bias(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Kernel initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Kernel initializer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Kernel initializer</em>' attribute.
+ * @see #setKernel_initializer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1_Kernel_initializer()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getKernel_initializer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getKernel_initializer <em>Kernel initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Kernel initializer</em>' attribute.
+ * @see #getKernel_initializer()
+ * @generated
+ */
+ void setKernel_initializer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Recurrent initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Recurrent initializer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Recurrent initializer</em>' attribute.
+ * @see #setRecurrent_initializer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1_Recurrent_initializer()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getRecurrent_initializer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getRecurrent_initializer <em>Recurrent initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Recurrent initializer</em>' attribute.
+ * @see #getRecurrent_initializer()
+ * @generated
+ */
+ void setRecurrent_initializer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Bias initializer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bias initializer</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bias initializer</em>' attribute.
+ * @see #setBias_initializer(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1_Bias_initializer()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getBias_initializer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getBias_initializer <em>Bias initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bias initializer</em>' attribute.
+ * @see #getBias_initializer()
+ * @generated
+ */
+ void setBias_initializer(String value);
+
+ /**
+ * Returns the value of the '<em><b>Return sequences</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Return sequences</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Return sequences</em>' attribute.
+ * @see #setReturn_sequences(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1_Return_sequences()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isReturn_sequences();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isReturn_sequences <em>Return sequences</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Return sequences</em>' attribute.
+ * @see #isReturn_sequences()
+ * @generated
+ */
+ void setReturn_sequences(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Return state</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Return state</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Return state</em>' attribute.
+ * @see #setReturn_state(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1_Return_state()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isReturn_state();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#isReturn_state <em>Return state</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Return state</em>' attribute.
+ * @see #isReturn_state()
+ * @generated
+ */
+ void setReturn_state(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Bidirectional k</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bidirectional k</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bidirectional k</em>' reference.
+ * @see #setBidirectional_k(Recurrent_layers_1)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1_Bidirectional_k()
+ * @model ordered="false"
+ * @generated
+ */
+ Recurrent_layers_1 getBidirectional_k();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getBidirectional_k <em>Bidirectional k</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bidirectional k</em>' reference.
+ * @see #getBidirectional_k()
+ * @generated
+ */
+ void setBidirectional_k(Recurrent_layers_1 value);
+
+ /**
+ * Returns the value of the '<em><b>Recurrent dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Recurrent dropout</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Recurrent dropout</em>' attribute.
+ * @see #setRecurrent_dropout(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#getRecurrent_layers_1_Recurrent_dropout()
+ * @model dataType="org.eclipse.uml2.types.Real" required="true" ordered="false"
+ * @generated
+ */
+ double getRecurrent_dropout();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1#getRecurrent_dropout <em>Recurrent dropout</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Recurrent dropout</em>' attribute.
+ * @see #getRecurrent_dropout()
+ * @generated
+ */
+ void setRecurrent_dropout(double value);
+
+} // Recurrent_layers_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/GRUCellImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/GRUCellImpl.java
new file mode 100644
index 0000000..c96507b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/GRUCellImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.GRUCell;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>GRU Cell</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GRUCellImpl extends Recurrent_layersImpl implements GRUCell {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GRUCellImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Recurrent_layersPackage.Literals.GRU_CELL;
+ }
+
+} //GRUCellImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/GRUImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/GRUImpl.java
new file mode 100644
index 0000000..3cb47c7
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/GRUImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.GRU;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>GRU</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class GRUImpl extends Recurrent_layers_1Impl implements GRU {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GRUImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Recurrent_layersPackage.Literals.GRU;
+ }
+
+} //GRUImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/LSTMCellImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/LSTMCellImpl.java
new file mode 100644
index 0000000..a63df0e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/LSTMCellImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.LSTMCell;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>LSTM Cell</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class LSTMCellImpl extends Recurrent_layersImpl implements LSTMCell {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LSTMCellImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Recurrent_layersPackage.Literals.LSTM_CELL;
+ }
+
+} //LSTMCellImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/LSTMImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/LSTMImpl.java
new file mode 100644
index 0000000..5a01e80
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/LSTMImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.LSTM;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>LSTM</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class LSTMImpl extends Recurrent_layers_1Impl implements LSTM {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LSTMImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Recurrent_layersPackage.Literals.LSTM;
+ }
+
+} //LSTMImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/RNNCellImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/RNNCellImpl.java
new file mode 100644
index 0000000..1d7ccc8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/RNNCellImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNNCell;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>RNN Cell</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.RNNCellImpl#getNonlinearity <em>Nonlinearity</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class RNNCellImpl extends Recurrent_layersImpl implements RNNCell {
+ /**
+ * The default value of the '{@link #getNonlinearity() <em>Nonlinearity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNonlinearity()
+ * @generated
+ * @ordered
+ */
+ protected static final String NONLINEARITY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNonlinearity() <em>Nonlinearity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNonlinearity()
+ * @generated
+ * @ordered
+ */
+ protected String nonlinearity = NONLINEARITY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RNNCellImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Recurrent_layersPackage.Literals.RNN_CELL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getNonlinearity() {
+ return nonlinearity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNonlinearity(String newNonlinearity) {
+ String oldNonlinearity = nonlinearity;
+ nonlinearity = newNonlinearity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RNN_CELL__NONLINEARITY, oldNonlinearity, nonlinearity));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RNN_CELL__NONLINEARITY:
+ return getNonlinearity();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RNN_CELL__NONLINEARITY:
+ setNonlinearity((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RNN_CELL__NONLINEARITY:
+ setNonlinearity(NONLINEARITY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RNN_CELL__NONLINEARITY:
+ return NONLINEARITY_EDEFAULT == null ? nonlinearity != null : !NONLINEARITY_EDEFAULT.equals(nonlinearity);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (nonlinearity: "); //$NON-NLS-1$
+ result.append(nonlinearity);
+ result.append(')');
+ return result.toString();
+ }
+
+} //RNNCellImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/RNNImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/RNNImpl.java
new file mode 100644
index 0000000..367232f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/RNNImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNN;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>RNN</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.RNNImpl#getNonlinearity <em>Nonlinearity</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class RNNImpl extends Recurrent_layers_1Impl implements RNN {
+ /**
+ * The default value of the '{@link #getNonlinearity() <em>Nonlinearity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNonlinearity()
+ * @generated
+ * @ordered
+ */
+ protected static final String NONLINEARITY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNonlinearity() <em>Nonlinearity</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNonlinearity()
+ * @generated
+ * @ordered
+ */
+ protected String nonlinearity = NONLINEARITY_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RNNImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Recurrent_layersPackage.Literals.RNN;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getNonlinearity() {
+ return nonlinearity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNonlinearity(String newNonlinearity) {
+ String oldNonlinearity = nonlinearity;
+ nonlinearity = newNonlinearity;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RNN__NONLINEARITY, oldNonlinearity, nonlinearity));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RNN__NONLINEARITY:
+ return getNonlinearity();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RNN__NONLINEARITY:
+ setNonlinearity((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RNN__NONLINEARITY:
+ setNonlinearity(NONLINEARITY_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RNN__NONLINEARITY:
+ return NONLINEARITY_EDEFAULT == null ? nonlinearity != null : !NONLINEARITY_EDEFAULT.equals(nonlinearity);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (nonlinearity: "); //$NON-NLS-1$
+ result.append(nonlinearity);
+ result.append(')');
+ return result.toString();
+ }
+
+} //RNNImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/Recurrent_layersFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/Recurrent_layersFactoryImpl.java
new file mode 100644
index 0000000..c460a01
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/Recurrent_layersFactoryImpl.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Recurrent_layersFactoryImpl extends EFactoryImpl implements Recurrent_layersFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Recurrent_layersFactory init() {
+ try {
+ Recurrent_layersFactory theRecurrent_layersFactory = (Recurrent_layersFactory)EPackage.Registry.INSTANCE.getEFactory(Recurrent_layersPackage.eNS_URI);
+ if (theRecurrent_layersFactory != null) {
+ return theRecurrent_layersFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Recurrent_layersFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Recurrent_layersFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Recurrent_layersPackage.RNN_CELL: return createRNNCell();
+ case Recurrent_layersPackage.LSTM_CELL: return createLSTMCell();
+ case Recurrent_layersPackage.GRU_CELL: return createGRUCell();
+ case Recurrent_layersPackage.RNN: return createRNN();
+ case Recurrent_layersPackage.LSTM: return createLSTM();
+ case Recurrent_layersPackage.GRU: return createGRU();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public RNNCell createRNNCell() {
+ RNNCellImpl rnnCell = new RNNCellImpl();
+ return rnnCell;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public LSTMCell createLSTMCell() {
+ LSTMCellImpl lstmCell = new LSTMCellImpl();
+ return lstmCell;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public GRUCell createGRUCell() {
+ GRUCellImpl gruCell = new GRUCellImpl();
+ return gruCell;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public RNN createRNN() {
+ RNNImpl rnn = new RNNImpl();
+ return rnn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public LSTM createLSTM() {
+ LSTMImpl lstm = new LSTMImpl();
+ return lstm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public GRU createGRU() {
+ GRUImpl gru = new GRUImpl();
+ return gru;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Recurrent_layersPackage getRecurrent_layersPackage() {
+ return (Recurrent_layersPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Recurrent_layersPackage getPackage() {
+ return Recurrent_layersPackage.eINSTANCE;
+ }
+
+} //Recurrent_layersFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/Recurrent_layersImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/Recurrent_layersImpl.java
new file mode 100644
index 0000000..dff23c7
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/Recurrent_layersImpl.java
@@ -0,0 +1,285 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Recurrent layers</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersImpl#getInput_size <em>Input size</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersImpl#getHidden_size <em>Hidden size</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersImpl#isBias_pt <em>Bias pt</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Recurrent_layersImpl extends ModelImpl implements Recurrent_layers {
+ /**
+ * The default value of the '{@link #getInput_size() <em>Input size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInput_size()
+ * @generated
+ * @ordered
+ */
+ protected static final int INPUT_SIZE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getInput_size() <em>Input size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInput_size()
+ * @generated
+ * @ordered
+ */
+ protected int input_size = INPUT_SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getHidden_size() <em>Hidden size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHidden_size()
+ * @generated
+ * @ordered
+ */
+ protected static final int HIDDEN_SIZE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getHidden_size() <em>Hidden size</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getHidden_size()
+ * @generated
+ * @ordered
+ */
+ protected int hidden_size = HIDDEN_SIZE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isBias_pt() <em>Bias pt</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBias_pt()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean BIAS_PT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isBias_pt() <em>Bias pt</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBias_pt()
+ * @generated
+ * @ordered
+ */
+ protected boolean bias_pt = BIAS_PT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Recurrent_layersImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Recurrent_layersPackage.Literals.RECURRENT_LAYERS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getInput_size() {
+ return input_size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setInput_size(int newInput_size) {
+ int oldInput_size = input_size;
+ input_size = newInput_size;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS__INPUT_SIZE, oldInput_size, input_size));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getHidden_size() {
+ return hidden_size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setHidden_size(int newHidden_size) {
+ int oldHidden_size = hidden_size;
+ hidden_size = newHidden_size;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS__HIDDEN_SIZE, oldHidden_size, hidden_size));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isBias_pt() {
+ return bias_pt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBias_pt(boolean newBias_pt) {
+ boolean oldBias_pt = bias_pt;
+ bias_pt = newBias_pt;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS__BIAS_PT, oldBias_pt, bias_pt));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RECURRENT_LAYERS__INPUT_SIZE:
+ return getInput_size();
+ case Recurrent_layersPackage.RECURRENT_LAYERS__HIDDEN_SIZE:
+ return getHidden_size();
+ case Recurrent_layersPackage.RECURRENT_LAYERS__BIAS_PT:
+ return isBias_pt();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RECURRENT_LAYERS__INPUT_SIZE:
+ setInput_size((Integer)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS__HIDDEN_SIZE:
+ setHidden_size((Integer)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS__BIAS_PT:
+ setBias_pt((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RECURRENT_LAYERS__INPUT_SIZE:
+ setInput_size(INPUT_SIZE_EDEFAULT);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS__HIDDEN_SIZE:
+ setHidden_size(HIDDEN_SIZE_EDEFAULT);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS__BIAS_PT:
+ setBias_pt(BIAS_PT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RECURRENT_LAYERS__INPUT_SIZE:
+ return input_size != INPUT_SIZE_EDEFAULT;
+ case Recurrent_layersPackage.RECURRENT_LAYERS__HIDDEN_SIZE:
+ return hidden_size != HIDDEN_SIZE_EDEFAULT;
+ case Recurrent_layersPackage.RECURRENT_LAYERS__BIAS_PT:
+ return bias_pt != BIAS_PT_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (input_size: "); //$NON-NLS-1$
+ result.append(input_size);
+ result.append(", hidden_size: "); //$NON-NLS-1$
+ result.append(hidden_size);
+ result.append(", bias_pt: "); //$NON-NLS-1$
+ result.append(bias_pt);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Recurrent_layersImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/Recurrent_layersPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/Recurrent_layersPackageImpl.java
new file mode 100644
index 0000000..1f90155
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/Recurrent_layersPackageImpl.java
@@ -0,0 +1,746 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.GRUCell;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.LSTMCell;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNNCell;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Recurrent_layersPackageImpl extends EPackageImpl implements Recurrent_layersPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass recurrent_layersEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass recurrent_layers_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass rnnCellEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass lstmCellEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass gruCellEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass rnnEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass lstmEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass gruEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Recurrent_layersPackageImpl() {
+ super(eNS_URI, Recurrent_layersFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Recurrent_layersPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Recurrent_layersPackage init() {
+ if (isInited) return (Recurrent_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredRecurrent_layersPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = registeredRecurrent_layersPackage instanceof Recurrent_layersPackageImpl ? (Recurrent_layersPackageImpl)registeredRecurrent_layersPackage : new Recurrent_layersPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theRecurrent_layersPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theRecurrent_layersPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theRecurrent_layersPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Recurrent_layersPackage.eNS_URI, theRecurrent_layersPackage);
+ return theRecurrent_layersPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getRecurrent_layers() {
+ return recurrent_layersEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_Input_size() {
+ return (EAttribute)recurrent_layersEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_Hidden_size() {
+ return (EAttribute)recurrent_layersEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_Bias_pt() {
+ return (EAttribute)recurrent_layersEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getRecurrent_layers_1() {
+ return recurrent_layers_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_1_Num_layers() {
+ return (EAttribute)recurrent_layers_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_1_Batch_first_pt() {
+ return (EAttribute)recurrent_layers_1EClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_1_Dropout() {
+ return (EAttribute)recurrent_layers_1EClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_1_Bidirectional_pt() {
+ return (EAttribute)recurrent_layers_1EClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_1_Activation() {
+ return (EAttribute)recurrent_layers_1EClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_1_Recurrent_activation() {
+ return (EAttribute)recurrent_layers_1EClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_1_Use_bias() {
+ return (EAttribute)recurrent_layers_1EClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_1_Kernel_initializer() {
+ return (EAttribute)recurrent_layers_1EClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_1_Recurrent_initializer() {
+ return (EAttribute)recurrent_layers_1EClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_1_Bias_initializer() {
+ return (EAttribute)recurrent_layers_1EClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_1_Return_sequences() {
+ return (EAttribute)recurrent_layers_1EClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_1_Return_state() {
+ return (EAttribute)recurrent_layers_1EClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getRecurrent_layers_1_Bidirectional_k() {
+ return (EReference)recurrent_layers_1EClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRecurrent_layers_1_Recurrent_dropout() {
+ return (EAttribute)recurrent_layers_1EClass.getEStructuralFeatures().get(13);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getRNNCell() {
+ return rnnCellEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRNNCell_Nonlinearity() {
+ return (EAttribute)rnnCellEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLSTMCell() {
+ return lstmCellEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getGRUCell() {
+ return gruCellEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getRNN() {
+ return rnnEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRNN_Nonlinearity() {
+ return (EAttribute)rnnEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLSTM() {
+ return lstmEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getGRU() {
+ return gruEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Recurrent_layersFactory getRecurrent_layersFactory() {
+ return (Recurrent_layersFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ recurrent_layersEClass = createEClass(RECURRENT_LAYERS);
+ createEAttribute(recurrent_layersEClass, RECURRENT_LAYERS__INPUT_SIZE);
+ createEAttribute(recurrent_layersEClass, RECURRENT_LAYERS__HIDDEN_SIZE);
+ createEAttribute(recurrent_layersEClass, RECURRENT_LAYERS__BIAS_PT);
+
+ recurrent_layers_1EClass = createEClass(RECURRENT_LAYERS_1);
+ createEAttribute(recurrent_layers_1EClass, RECURRENT_LAYERS_1__NUM_LAYERS);
+ createEAttribute(recurrent_layers_1EClass, RECURRENT_LAYERS_1__BATCH_FIRST_PT);
+ createEAttribute(recurrent_layers_1EClass, RECURRENT_LAYERS_1__DROPOUT);
+ createEAttribute(recurrent_layers_1EClass, RECURRENT_LAYERS_1__BIDIRECTIONAL_PT);
+ createEAttribute(recurrent_layers_1EClass, RECURRENT_LAYERS_1__ACTIVATION);
+ createEAttribute(recurrent_layers_1EClass, RECURRENT_LAYERS_1__RECURRENT_ACTIVATION);
+ createEAttribute(recurrent_layers_1EClass, RECURRENT_LAYERS_1__USE_BIAS);
+ createEAttribute(recurrent_layers_1EClass, RECURRENT_LAYERS_1__KERNEL_INITIALIZER);
+ createEAttribute(recurrent_layers_1EClass, RECURRENT_LAYERS_1__RECURRENT_INITIALIZER);
+ createEAttribute(recurrent_layers_1EClass, RECURRENT_LAYERS_1__BIAS_INITIALIZER);
+ createEAttribute(recurrent_layers_1EClass, RECURRENT_LAYERS_1__RETURN_SEQUENCES);
+ createEAttribute(recurrent_layers_1EClass, RECURRENT_LAYERS_1__RETURN_STATE);
+ createEReference(recurrent_layers_1EClass, RECURRENT_LAYERS_1__BIDIRECTIONAL_K);
+ createEAttribute(recurrent_layers_1EClass, RECURRENT_LAYERS_1__RECURRENT_DROPOUT);
+
+ rnnCellEClass = createEClass(RNN_CELL);
+ createEAttribute(rnnCellEClass, RNN_CELL__NONLINEARITY);
+
+ lstmCellEClass = createEClass(LSTM_CELL);
+
+ gruCellEClass = createEClass(GRU_CELL);
+
+ rnnEClass = createEClass(RNN);
+ createEAttribute(rnnEClass, RNN__NONLINEARITY);
+
+ lstmEClass = createEClass(LSTM);
+
+ gruEClass = createEClass(GRU);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ recurrent_layersEClass.getESuperTypes().add(theModulePackage.getModel());
+ recurrent_layers_1EClass.getESuperTypes().add(this.getRecurrent_layers());
+ rnnCellEClass.getESuperTypes().add(this.getRecurrent_layers());
+ lstmCellEClass.getESuperTypes().add(this.getRecurrent_layers());
+ gruCellEClass.getESuperTypes().add(this.getRecurrent_layers());
+ rnnEClass.getESuperTypes().add(this.getRecurrent_layers_1());
+ lstmEClass.getESuperTypes().add(this.getRecurrent_layers_1());
+ gruEClass.getESuperTypes().add(this.getRecurrent_layers_1());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(recurrent_layersEClass, Recurrent_layers.class, "Recurrent_layers", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_Input_size(), theTypesPackage.getInteger(), "input_size", null, 1, 1, Recurrent_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_Hidden_size(), theTypesPackage.getInteger(), "hidden_size", null, 1, 1, Recurrent_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_Bias_pt(), theTypesPackage.getBoolean(), "bias_pt", null, 0, 1, Recurrent_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(recurrent_layers_1EClass, Recurrent_layers_1.class, "Recurrent_layers_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_1_Num_layers(), theTypesPackage.getInteger(), "num_layers", null, 0, 1, Recurrent_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_1_Batch_first_pt(), theTypesPackage.getBoolean(), "batch_first_pt", null, 0, 1, Recurrent_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_1_Dropout(), theTypesPackage.getReal(), "dropout", null, 0, 1, Recurrent_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_1_Bidirectional_pt(), theTypesPackage.getBoolean(), "bidirectional_pt", null, 0, 1, Recurrent_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_1_Activation(), theTypesPackage.getString(), "activation", null, 0, 1, Recurrent_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_1_Recurrent_activation(), theTypesPackage.getString(), "recurrent_activation", null, 0, 1, Recurrent_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_1_Use_bias(), theTypesPackage.getBoolean(), "use_bias", null, 0, 1, Recurrent_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_1_Kernel_initializer(), theTypesPackage.getString(), "kernel_initializer", null, 0, 1, Recurrent_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_1_Recurrent_initializer(), theTypesPackage.getString(), "recurrent_initializer", null, 0, 1, Recurrent_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_1_Bias_initializer(), theTypesPackage.getString(), "bias_initializer", null, 0, 1, Recurrent_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_1_Return_sequences(), theTypesPackage.getBoolean(), "return_sequences", null, 0, 1, Recurrent_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_1_Return_state(), theTypesPackage.getBoolean(), "return_state", null, 0, 1, Recurrent_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getRecurrent_layers_1_Bidirectional_k(), this.getRecurrent_layers_1(), null, "bidirectional_k", null, 0, 1, Recurrent_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getRecurrent_layers_1_Recurrent_dropout(), theTypesPackage.getReal(), "recurrent_dropout", null, 1, 1, Recurrent_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(rnnCellEClass, RNNCell.class, "RNNCell", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getRNNCell_Nonlinearity(), theTypesPackage.getString(), "nonlinearity", null, 0, 1, RNNCell.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(lstmCellEClass, LSTMCell.class, "LSTMCell", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(gruCellEClass, GRUCell.class, "GRUCell", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(rnnEClass, org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNN.class, "RNN", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getRNN_Nonlinearity(), theTypesPackage.getString(), "nonlinearity", null, 0, 1, org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNN.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(lstmEClass, org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.LSTM.class, "LSTM", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(gruEClass, org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.GRU.class, "GRU", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ }
+
+} //Recurrent_layersPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/Recurrent_layers_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/Recurrent_layers_1Impl.java
new file mode 100644
index 0000000..c5e2ada
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/impl/Recurrent_layers_1Impl.java
@@ -0,0 +1,908 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Recurrent layers 1</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl#getNum_layers <em>Num layers</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl#isBatch_first_pt <em>Batch first pt</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl#getDropout <em>Dropout</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl#isBidirectional_pt <em>Bidirectional pt</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl#getActivation <em>Activation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl#getRecurrent_activation <em>Recurrent activation</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl#isUse_bias <em>Use bias</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl#getKernel_initializer <em>Kernel initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl#getRecurrent_initializer <em>Recurrent initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl#getBias_initializer <em>Bias initializer</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl#isReturn_sequences <em>Return sequences</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl#isReturn_state <em>Return state</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl#getBidirectional_k <em>Bidirectional k</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layers_1Impl#getRecurrent_dropout <em>Recurrent dropout</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Recurrent_layers_1Impl extends Recurrent_layersImpl implements Recurrent_layers_1 {
+ /**
+ * The default value of the '{@link #getNum_layers() <em>Num layers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_layers()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUM_LAYERS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNum_layers() <em>Num layers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_layers()
+ * @generated
+ * @ordered
+ */
+ protected int num_layers = NUM_LAYERS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isBatch_first_pt() <em>Batch first pt</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBatch_first_pt()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean BATCH_FIRST_PT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isBatch_first_pt() <em>Batch first pt</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBatch_first_pt()
+ * @generated
+ * @ordered
+ */
+ protected boolean batch_first_pt = BATCH_FIRST_PT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDropout() <em>Dropout</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDropout()
+ * @generated
+ * @ordered
+ */
+ protected static final double DROPOUT_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getDropout() <em>Dropout</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDropout()
+ * @generated
+ * @ordered
+ */
+ protected double dropout = DROPOUT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isBidirectional_pt() <em>Bidirectional pt</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBidirectional_pt()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean BIDIRECTIONAL_PT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isBidirectional_pt() <em>Bidirectional pt</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBidirectional_pt()
+ * @generated
+ * @ordered
+ */
+ protected boolean bidirectional_pt = BIDIRECTIONAL_PT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getActivation() <em>Activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActivation()
+ * @generated
+ * @ordered
+ */
+ protected static final String ACTIVATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getActivation() <em>Activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActivation()
+ * @generated
+ * @ordered
+ */
+ protected String activation = ACTIVATION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRecurrent_activation() <em>Recurrent activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRecurrent_activation()
+ * @generated
+ * @ordered
+ */
+ protected static final String RECURRENT_ACTIVATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRecurrent_activation() <em>Recurrent activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRecurrent_activation()
+ * @generated
+ * @ordered
+ */
+ protected String recurrent_activation = RECURRENT_ACTIVATION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isUse_bias() <em>Use bias</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUse_bias()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean USE_BIAS_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isUse_bias() <em>Use bias</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUse_bias()
+ * @generated
+ * @ordered
+ */
+ protected boolean use_bias = USE_BIAS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getKernel_initializer() <em>Kernel initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKernel_initializer()
+ * @generated
+ * @ordered
+ */
+ protected static final String KERNEL_INITIALIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getKernel_initializer() <em>Kernel initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKernel_initializer()
+ * @generated
+ * @ordered
+ */
+ protected String kernel_initializer = KERNEL_INITIALIZER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRecurrent_initializer() <em>Recurrent initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRecurrent_initializer()
+ * @generated
+ * @ordered
+ */
+ protected static final String RECURRENT_INITIALIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRecurrent_initializer() <em>Recurrent initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRecurrent_initializer()
+ * @generated
+ * @ordered
+ */
+ protected String recurrent_initializer = RECURRENT_INITIALIZER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getBias_initializer() <em>Bias initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBias_initializer()
+ * @generated
+ * @ordered
+ */
+ protected static final String BIAS_INITIALIZER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBias_initializer() <em>Bias initializer</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBias_initializer()
+ * @generated
+ * @ordered
+ */
+ protected String bias_initializer = BIAS_INITIALIZER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isReturn_sequences() <em>Return sequences</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReturn_sequences()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean RETURN_SEQUENCES_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isReturn_sequences() <em>Return sequences</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReturn_sequences()
+ * @generated
+ * @ordered
+ */
+ protected boolean return_sequences = RETURN_SEQUENCES_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isReturn_state() <em>Return state</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReturn_state()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean RETURN_STATE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isReturn_state() <em>Return state</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReturn_state()
+ * @generated
+ * @ordered
+ */
+ protected boolean return_state = RETURN_STATE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBidirectional_k() <em>Bidirectional k</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBidirectional_k()
+ * @generated
+ * @ordered
+ */
+ protected Recurrent_layers_1 bidirectional_k;
+
+ /**
+ * The default value of the '{@link #getRecurrent_dropout() <em>Recurrent dropout</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRecurrent_dropout()
+ * @generated
+ * @ordered
+ */
+ protected static final double RECURRENT_DROPOUT_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getRecurrent_dropout() <em>Recurrent dropout</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRecurrent_dropout()
+ * @generated
+ * @ordered
+ */
+ protected double recurrent_dropout = RECURRENT_DROPOUT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Recurrent_layers_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Recurrent_layersPackage.Literals.RECURRENT_LAYERS_1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getNum_layers() {
+ return num_layers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNum_layers(int newNum_layers) {
+ int oldNum_layers = num_layers;
+ num_layers = newNum_layers;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS_1__NUM_LAYERS, oldNum_layers, num_layers));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isBatch_first_pt() {
+ return batch_first_pt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBatch_first_pt(boolean newBatch_first_pt) {
+ boolean oldBatch_first_pt = batch_first_pt;
+ batch_first_pt = newBatch_first_pt;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS_1__BATCH_FIRST_PT, oldBatch_first_pt, batch_first_pt));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getDropout() {
+ return dropout;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDropout(double newDropout) {
+ double oldDropout = dropout;
+ dropout = newDropout;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS_1__DROPOUT, oldDropout, dropout));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isBidirectional_pt() {
+ return bidirectional_pt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBidirectional_pt(boolean newBidirectional_pt) {
+ boolean oldBidirectional_pt = bidirectional_pt;
+ bidirectional_pt = newBidirectional_pt;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS_1__BIDIRECTIONAL_PT, oldBidirectional_pt, bidirectional_pt));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getActivation() {
+ return activation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setActivation(String newActivation) {
+ String oldActivation = activation;
+ activation = newActivation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS_1__ACTIVATION, oldActivation, activation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getRecurrent_activation() {
+ return recurrent_activation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setRecurrent_activation(String newRecurrent_activation) {
+ String oldRecurrent_activation = recurrent_activation;
+ recurrent_activation = newRecurrent_activation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_ACTIVATION, oldRecurrent_activation, recurrent_activation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isUse_bias() {
+ return use_bias;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUse_bias(boolean newUse_bias) {
+ boolean oldUse_bias = use_bias;
+ use_bias = newUse_bias;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS_1__USE_BIAS, oldUse_bias, use_bias));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getKernel_initializer() {
+ return kernel_initializer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setKernel_initializer(String newKernel_initializer) {
+ String oldKernel_initializer = kernel_initializer;
+ kernel_initializer = newKernel_initializer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS_1__KERNEL_INITIALIZER, oldKernel_initializer, kernel_initializer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getRecurrent_initializer() {
+ return recurrent_initializer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setRecurrent_initializer(String newRecurrent_initializer) {
+ String oldRecurrent_initializer = recurrent_initializer;
+ recurrent_initializer = newRecurrent_initializer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_INITIALIZER, oldRecurrent_initializer, recurrent_initializer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getBias_initializer() {
+ return bias_initializer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBias_initializer(String newBias_initializer) {
+ String oldBias_initializer = bias_initializer;
+ bias_initializer = newBias_initializer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS_1__BIAS_INITIALIZER, oldBias_initializer, bias_initializer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isReturn_sequences() {
+ return return_sequences;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setReturn_sequences(boolean newReturn_sequences) {
+ boolean oldReturn_sequences = return_sequences;
+ return_sequences = newReturn_sequences;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS_1__RETURN_SEQUENCES, oldReturn_sequences, return_sequences));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isReturn_state() {
+ return return_state;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setReturn_state(boolean newReturn_state) {
+ boolean oldReturn_state = return_state;
+ return_state = newReturn_state;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS_1__RETURN_STATE, oldReturn_state, return_state));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Recurrent_layers_1 getBidirectional_k() {
+ if (bidirectional_k != null && bidirectional_k.eIsProxy()) {
+ InternalEObject oldBidirectional_k = (InternalEObject)bidirectional_k;
+ bidirectional_k = (Recurrent_layers_1)eResolveProxy(oldBidirectional_k);
+ if (bidirectional_k != oldBidirectional_k) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Recurrent_layersPackage.RECURRENT_LAYERS_1__BIDIRECTIONAL_K, oldBidirectional_k, bidirectional_k));
+ }
+ }
+ return bidirectional_k;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Recurrent_layers_1 basicGetBidirectional_k() {
+ return bidirectional_k;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBidirectional_k(Recurrent_layers_1 newBidirectional_k) {
+ Recurrent_layers_1 oldBidirectional_k = bidirectional_k;
+ bidirectional_k = newBidirectional_k;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS_1__BIDIRECTIONAL_K, oldBidirectional_k, bidirectional_k));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getRecurrent_dropout() {
+ return recurrent_dropout;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setRecurrent_dropout(double newRecurrent_dropout) {
+ double oldRecurrent_dropout = recurrent_dropout;
+ recurrent_dropout = newRecurrent_dropout;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_DROPOUT, oldRecurrent_dropout, recurrent_dropout));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__NUM_LAYERS:
+ return getNum_layers();
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BATCH_FIRST_PT:
+ return isBatch_first_pt();
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__DROPOUT:
+ return getDropout();
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BIDIRECTIONAL_PT:
+ return isBidirectional_pt();
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__ACTIVATION:
+ return getActivation();
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_ACTIVATION:
+ return getRecurrent_activation();
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__USE_BIAS:
+ return isUse_bias();
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__KERNEL_INITIALIZER:
+ return getKernel_initializer();
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_INITIALIZER:
+ return getRecurrent_initializer();
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BIAS_INITIALIZER:
+ return getBias_initializer();
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RETURN_SEQUENCES:
+ return isReturn_sequences();
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RETURN_STATE:
+ return isReturn_state();
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BIDIRECTIONAL_K:
+ if (resolve) return getBidirectional_k();
+ return basicGetBidirectional_k();
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_DROPOUT:
+ return getRecurrent_dropout();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__NUM_LAYERS:
+ setNum_layers((Integer)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BATCH_FIRST_PT:
+ setBatch_first_pt((Boolean)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__DROPOUT:
+ setDropout((Double)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BIDIRECTIONAL_PT:
+ setBidirectional_pt((Boolean)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__ACTIVATION:
+ setActivation((String)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_ACTIVATION:
+ setRecurrent_activation((String)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__USE_BIAS:
+ setUse_bias((Boolean)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__KERNEL_INITIALIZER:
+ setKernel_initializer((String)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_INITIALIZER:
+ setRecurrent_initializer((String)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BIAS_INITIALIZER:
+ setBias_initializer((String)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RETURN_SEQUENCES:
+ setReturn_sequences((Boolean)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RETURN_STATE:
+ setReturn_state((Boolean)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BIDIRECTIONAL_K:
+ setBidirectional_k((Recurrent_layers_1)newValue);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_DROPOUT:
+ setRecurrent_dropout((Double)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__NUM_LAYERS:
+ setNum_layers(NUM_LAYERS_EDEFAULT);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BATCH_FIRST_PT:
+ setBatch_first_pt(BATCH_FIRST_PT_EDEFAULT);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__DROPOUT:
+ setDropout(DROPOUT_EDEFAULT);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BIDIRECTIONAL_PT:
+ setBidirectional_pt(BIDIRECTIONAL_PT_EDEFAULT);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__ACTIVATION:
+ setActivation(ACTIVATION_EDEFAULT);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_ACTIVATION:
+ setRecurrent_activation(RECURRENT_ACTIVATION_EDEFAULT);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__USE_BIAS:
+ setUse_bias(USE_BIAS_EDEFAULT);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__KERNEL_INITIALIZER:
+ setKernel_initializer(KERNEL_INITIALIZER_EDEFAULT);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_INITIALIZER:
+ setRecurrent_initializer(RECURRENT_INITIALIZER_EDEFAULT);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BIAS_INITIALIZER:
+ setBias_initializer(BIAS_INITIALIZER_EDEFAULT);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RETURN_SEQUENCES:
+ setReturn_sequences(RETURN_SEQUENCES_EDEFAULT);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RETURN_STATE:
+ setReturn_state(RETURN_STATE_EDEFAULT);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BIDIRECTIONAL_K:
+ setBidirectional_k((Recurrent_layers_1)null);
+ return;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_DROPOUT:
+ setRecurrent_dropout(RECURRENT_DROPOUT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__NUM_LAYERS:
+ return num_layers != NUM_LAYERS_EDEFAULT;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BATCH_FIRST_PT:
+ return batch_first_pt != BATCH_FIRST_PT_EDEFAULT;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__DROPOUT:
+ return dropout != DROPOUT_EDEFAULT;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BIDIRECTIONAL_PT:
+ return bidirectional_pt != BIDIRECTIONAL_PT_EDEFAULT;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__ACTIVATION:
+ return ACTIVATION_EDEFAULT == null ? activation != null : !ACTIVATION_EDEFAULT.equals(activation);
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_ACTIVATION:
+ return RECURRENT_ACTIVATION_EDEFAULT == null ? recurrent_activation != null : !RECURRENT_ACTIVATION_EDEFAULT.equals(recurrent_activation);
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__USE_BIAS:
+ return use_bias != USE_BIAS_EDEFAULT;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__KERNEL_INITIALIZER:
+ return KERNEL_INITIALIZER_EDEFAULT == null ? kernel_initializer != null : !KERNEL_INITIALIZER_EDEFAULT.equals(kernel_initializer);
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_INITIALIZER:
+ return RECURRENT_INITIALIZER_EDEFAULT == null ? recurrent_initializer != null : !RECURRENT_INITIALIZER_EDEFAULT.equals(recurrent_initializer);
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BIAS_INITIALIZER:
+ return BIAS_INITIALIZER_EDEFAULT == null ? bias_initializer != null : !BIAS_INITIALIZER_EDEFAULT.equals(bias_initializer);
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RETURN_SEQUENCES:
+ return return_sequences != RETURN_SEQUENCES_EDEFAULT;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RETURN_STATE:
+ return return_state != RETURN_STATE_EDEFAULT;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__BIDIRECTIONAL_K:
+ return bidirectional_k != null;
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1__RECURRENT_DROPOUT:
+ return recurrent_dropout != RECURRENT_DROPOUT_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (num_layers: "); //$NON-NLS-1$
+ result.append(num_layers);
+ result.append(", batch_first_pt: "); //$NON-NLS-1$
+ result.append(batch_first_pt);
+ result.append(", dropout: "); //$NON-NLS-1$
+ result.append(dropout);
+ result.append(", bidirectional_pt: "); //$NON-NLS-1$
+ result.append(bidirectional_pt);
+ result.append(", activation: "); //$NON-NLS-1$
+ result.append(activation);
+ result.append(", recurrent_activation: "); //$NON-NLS-1$
+ result.append(recurrent_activation);
+ result.append(", use_bias: "); //$NON-NLS-1$
+ result.append(use_bias);
+ result.append(", kernel_initializer: "); //$NON-NLS-1$
+ result.append(kernel_initializer);
+ result.append(", recurrent_initializer: "); //$NON-NLS-1$
+ result.append(recurrent_initializer);
+ result.append(", bias_initializer: "); //$NON-NLS-1$
+ result.append(bias_initializer);
+ result.append(", return_sequences: "); //$NON-NLS-1$
+ result.append(return_sequences);
+ result.append(", return_state: "); //$NON-NLS-1$
+ result.append(return_state);
+ result.append(", recurrent_dropout: "); //$NON-NLS-1$
+ result.append(recurrent_dropout);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Recurrent_layers_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/util/Recurrent_layersAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/util/Recurrent_layersAdapterFactory.java
new file mode 100644
index 0000000..52c032d
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/util/Recurrent_layersAdapterFactory.java
@@ -0,0 +1,273 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage
+ * @generated
+ */
+public class Recurrent_layersAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Recurrent_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Recurrent_layersAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Recurrent_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Recurrent_layersSwitch<Adapter> modelSwitch =
+ new Recurrent_layersSwitch<Adapter>() {
+ @Override
+ public Adapter caseRecurrent_layers(Recurrent_layers object) {
+ return createRecurrent_layersAdapter();
+ }
+ @Override
+ public Adapter caseRecurrent_layers_1(Recurrent_layers_1 object) {
+ return createRecurrent_layers_1Adapter();
+ }
+ @Override
+ public Adapter caseRNNCell(RNNCell object) {
+ return createRNNCellAdapter();
+ }
+ @Override
+ public Adapter caseLSTMCell(LSTMCell object) {
+ return createLSTMCellAdapter();
+ }
+ @Override
+ public Adapter caseGRUCell(GRUCell object) {
+ return createGRUCellAdapter();
+ }
+ @Override
+ public Adapter caseRNN(RNN object) {
+ return createRNNAdapter();
+ }
+ @Override
+ public Adapter caseLSTM(LSTM object) {
+ return createLSTMAdapter();
+ }
+ @Override
+ public Adapter caseGRU(GRU object) {
+ return createGRUAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers <em>Recurrent layers</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers
+ * @generated
+ */
+ public Adapter createRecurrent_layersAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1 <em>Recurrent layers 1</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layers_1
+ * @generated
+ */
+ public Adapter createRecurrent_layers_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNNCell <em>RNN Cell</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNNCell
+ * @generated
+ */
+ public Adapter createRNNCellAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.LSTMCell <em>LSTM Cell</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.LSTMCell
+ * @generated
+ */
+ public Adapter createLSTMCellAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.GRUCell <em>GRU Cell</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.GRUCell
+ * @generated
+ */
+ public Adapter createGRUCellAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNN <em>RNN</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.RNN
+ * @generated
+ */
+ public Adapter createRNNAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.LSTM <em>LSTM</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.LSTM
+ * @generated
+ */
+ public Adapter createLSTMAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.GRU <em>GRU</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.GRU
+ * @generated
+ */
+ public Adapter createGRUAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Recurrent_layersAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/util/Recurrent_layersSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/util/Recurrent_layersSwitch.java
new file mode 100644
index 0000000..db80151
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Recurrent_layers/util/Recurrent_layersSwitch.java
@@ -0,0 +1,299 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage
+ * @generated
+ */
+public class Recurrent_layersSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Recurrent_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Recurrent_layersSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Recurrent_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Recurrent_layersPackage.RECURRENT_LAYERS: {
+ Recurrent_layers recurrent_layers = (Recurrent_layers)theEObject;
+ T result = caseRecurrent_layers(recurrent_layers);
+ if (result == null) result = caseModel(recurrent_layers);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Recurrent_layersPackage.RECURRENT_LAYERS_1: {
+ Recurrent_layers_1 recurrent_layers_1 = (Recurrent_layers_1)theEObject;
+ T result = caseRecurrent_layers_1(recurrent_layers_1);
+ if (result == null) result = caseRecurrent_layers(recurrent_layers_1);
+ if (result == null) result = caseModel(recurrent_layers_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Recurrent_layersPackage.RNN_CELL: {
+ RNNCell rnnCell = (RNNCell)theEObject;
+ T result = caseRNNCell(rnnCell);
+ if (result == null) result = caseRecurrent_layers(rnnCell);
+ if (result == null) result = caseModel(rnnCell);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Recurrent_layersPackage.LSTM_CELL: {
+ LSTMCell lstmCell = (LSTMCell)theEObject;
+ T result = caseLSTMCell(lstmCell);
+ if (result == null) result = caseRecurrent_layers(lstmCell);
+ if (result == null) result = caseModel(lstmCell);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Recurrent_layersPackage.GRU_CELL: {
+ GRUCell gruCell = (GRUCell)theEObject;
+ T result = caseGRUCell(gruCell);
+ if (result == null) result = caseRecurrent_layers(gruCell);
+ if (result == null) result = caseModel(gruCell);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Recurrent_layersPackage.RNN: {
+ RNN rnn = (RNN)theEObject;
+ T result = caseRNN(rnn);
+ if (result == null) result = caseRecurrent_layers_1(rnn);
+ if (result == null) result = caseRecurrent_layers(rnn);
+ if (result == null) result = caseModel(rnn);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Recurrent_layersPackage.LSTM: {
+ LSTM lstm = (LSTM)theEObject;
+ T result = caseLSTM(lstm);
+ if (result == null) result = caseRecurrent_layers_1(lstm);
+ if (result == null) result = caseRecurrent_layers(lstm);
+ if (result == null) result = caseModel(lstm);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Recurrent_layersPackage.GRU: {
+ GRU gru = (GRU)theEObject;
+ T result = caseGRU(gru);
+ if (result == null) result = caseRecurrent_layers_1(gru);
+ if (result == null) result = caseRecurrent_layers(gru);
+ if (result == null) result = caseModel(gru);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Recurrent layers</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Recurrent layers</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRecurrent_layers(Recurrent_layers object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Recurrent layers 1</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Recurrent layers 1</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRecurrent_layers_1(Recurrent_layers_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>RNN Cell</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>RNN Cell</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRNNCell(RNNCell object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>LSTM Cell</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>LSTM Cell</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLSTMCell(LSTMCell object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>GRU Cell</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>GRU Cell</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGRUCell(GRUCell object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>RNN</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>RNN</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRNN(RNN object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>LSTM</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>LSTM</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLSTM(LSTM object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>GRU</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>GRU</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseGRU(GRU object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Recurrent_layersSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SmoothL1Loss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SmoothL1Loss.java
new file mode 100644
index 0000000..d8fe907
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SmoothL1Loss.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Smooth L1 Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage#getSmoothL1Loss()
+ * @model
+ * @generated
+ */
+public interface SmoothL1Loss extends Loss_functions_1 {
+} // SmoothL1Loss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMarginLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMarginLoss.java
new file mode 100644
index 0000000..8b9ea68
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMarginLoss.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Soft Margin Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage#getSoftMarginLoss()
+ * @model
+ * @generated
+ */
+public interface SoftMarginLoss extends Loss_functions_1 {
+} // SoftMarginLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/AdaptiveLogSoftmaxWithLoss.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/AdaptiveLogSoftmaxWithLoss.java
new file mode 100644
index 0000000..08aa355
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/AdaptiveLogSoftmaxWithLoss.java
@@ -0,0 +1,157 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Adaptive Log Softmax With Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getIn_features <em>In features</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getN_classes <em>Nclasses</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getCutoffs <em>Cutoffs</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getDiv_value <em>Div value</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#isHead_biais <em>Head biais</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage#getAdaptiveLogSoftmaxWithLoss()
+ * @model
+ * @generated
+ */
+public interface AdaptiveLogSoftmaxWithLoss extends SoftMinMax {
+ /**
+ * Returns the value of the '<em><b>In features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>In features</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>In features</em>' attribute.
+ * @see #setIn_features(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage#getAdaptiveLogSoftmaxWithLoss_In_features()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getIn_features();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getIn_features <em>In features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>In features</em>' attribute.
+ * @see #getIn_features()
+ * @generated
+ */
+ void setIn_features(int value);
+
+ /**
+ * Returns the value of the '<em><b>Nclasses</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Nclasses</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Nclasses</em>' attribute.
+ * @see #setN_classes(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage#getAdaptiveLogSoftmaxWithLoss_N_classes()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getN_classes();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getN_classes <em>Nclasses</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Nclasses</em>' attribute.
+ * @see #getN_classes()
+ * @generated
+ */
+ void setN_classes(int value);
+
+ /**
+ * Returns the value of the '<em><b>Cutoffs</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Cutoffs</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Cutoffs</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage#getAdaptiveLogSoftmaxWithLoss_Cutoffs()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getCutoffs();
+
+ /**
+ * Returns the value of the '<em><b>Div value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Div value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Div value</em>' attribute.
+ * @see #setDiv_value(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage#getAdaptiveLogSoftmaxWithLoss_Div_value()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getDiv_value();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getDiv_value <em>Div value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Div value</em>' attribute.
+ * @see #getDiv_value()
+ * @generated
+ */
+ void setDiv_value(double value);
+
+ /**
+ * Returns the value of the '<em><b>Head biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Head biais</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Head biais</em>' attribute.
+ * @see #setHead_biais(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage#getAdaptiveLogSoftmaxWithLoss_Head_biais()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isHead_biais();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#isHead_biais <em>Head biais</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Head biais</em>' attribute.
+ * @see #isHead_biais()
+ * @generated
+ */
+ void setHead_biais(boolean value);
+
+} // AdaptiveLogSoftmaxWithLoss
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/LogSoftmax.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/LogSoftmax.java
new file mode 100644
index 0000000..d7c0693
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/LogSoftmax.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Log Softmax</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage#getLogSoftmax()
+ * @model
+ * @generated
+ */
+public interface LogSoftmax extends SoftMinMax_1 {
+} // LogSoftmax
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/SoftMinMax.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/SoftMinMax.java
new file mode 100644
index 0000000..133d9dd
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/SoftMinMax.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Soft Min Max</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage#getSoftMinMax()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SoftMinMax extends Model {
+} // SoftMinMax
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/SoftMinMaxActivationsFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/SoftMinMaxActivationsFactory.java
new file mode 100644
index 0000000..cb2b1e9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/SoftMinMaxActivationsFactory.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage
+ * @generated
+ */
+public interface SoftMinMaxActivationsFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ SoftMinMaxActivationsFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Softmin</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Softmin</em>'.
+ * @generated
+ */
+ Softmin createSoftmin();
+
+ /**
+ * Returns a new object of class '<em>Softmax</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Softmax</em>'.
+ * @generated
+ */
+ Softmax createSoftmax();
+
+ /**
+ * Returns a new object of class '<em>Softmax2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Softmax2d</em>'.
+ * @generated
+ */
+ Softmax2d createSoftmax2d();
+
+ /**
+ * Returns a new object of class '<em>Log Softmax</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Log Softmax</em>'.
+ * @generated
+ */
+ LogSoftmax createLogSoftmax();
+
+ /**
+ * Returns a new object of class '<em>Adaptive Log Softmax With Loss</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Adaptive Log Softmax With Loss</em>'.
+ * @generated
+ */
+ AdaptiveLogSoftmaxWithLoss createAdaptiveLogSoftmaxWithLoss();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ SoftMinMaxActivationsPackage getSoftMinMaxActivationsPackage();
+
+} //SoftMinMaxActivationsFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/SoftMinMaxActivationsPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/SoftMinMaxActivationsPackage.java
new file mode 100644
index 0000000..35fede8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/SoftMinMaxActivationsPackage.java
@@ -0,0 +1,1067 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface SoftMinMaxActivationsPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "SoftMinMaxActivations"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/softminmax/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.SoftMinMaxActivations"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ SoftMinMaxActivationsPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxImpl <em>Soft Min Max</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl#getSoftMinMax()
+ * @generated
+ */
+ int SOFT_MIN_MAX = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The number of structural features of the '<em>Soft Min Max</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Soft Min Max</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMax_1Impl <em>Soft Min Max 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMax_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl#getSoftMinMax_1()
+ * @generated
+ */
+ int SOFT_MIN_MAX_1 = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX_1__BASE_CLASS = SOFT_MIN_MAX__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX_1__NAME = SOFT_MIN_MAX__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX_1__DATA = SOFT_MIN_MAX__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX_1__REQUIRES_GRAD = SOFT_MIN_MAX__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX_1__SUB_MODULE = SOFT_MIN_MAX__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX_1__OPTIMIZER = SOFT_MIN_MAX__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX_1__LOSS = SOFT_MIN_MAX__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Dim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX_1__DIM = SOFT_MIN_MAX_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Soft Min Max 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX_1_FEATURE_COUNT = SOFT_MIN_MAX_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Soft Min Max 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFT_MIN_MAX_1_OPERATION_COUNT = SOFT_MIN_MAX_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftminImpl <em>Softmin</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftminImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl#getSoftmin()
+ * @generated
+ */
+ int SOFTMIN = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMIN__BASE_CLASS = SOFT_MIN_MAX_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMIN__NAME = SOFT_MIN_MAX_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMIN__DATA = SOFT_MIN_MAX_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMIN__REQUIRES_GRAD = SOFT_MIN_MAX_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMIN__SUB_MODULE = SOFT_MIN_MAX_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMIN__OPTIMIZER = SOFT_MIN_MAX_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMIN__LOSS = SOFT_MIN_MAX_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Dim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMIN__DIM = SOFT_MIN_MAX_1__DIM;
+
+ /**
+ * The number of structural features of the '<em>Softmin</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMIN_FEATURE_COUNT = SOFT_MIN_MAX_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Softmin</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMIN_OPERATION_COUNT = SOFT_MIN_MAX_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftmaxImpl <em>Softmax</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftmaxImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl#getSoftmax()
+ * @generated
+ */
+ int SOFTMAX = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX__BASE_CLASS = SOFT_MIN_MAX_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX__NAME = SOFT_MIN_MAX_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX__DATA = SOFT_MIN_MAX_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX__REQUIRES_GRAD = SOFT_MIN_MAX_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX__SUB_MODULE = SOFT_MIN_MAX_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX__OPTIMIZER = SOFT_MIN_MAX_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX__LOSS = SOFT_MIN_MAX_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Dim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX__DIM = SOFT_MIN_MAX_1__DIM;
+
+ /**
+ * The number of structural features of the '<em>Softmax</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX_FEATURE_COUNT = SOFT_MIN_MAX_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Softmax</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX_OPERATION_COUNT = SOFT_MIN_MAX_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.Softmax2dImpl <em>Softmax2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.Softmax2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl#getSoftmax2d()
+ * @generated
+ */
+ int SOFTMAX2D = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX2D__BASE_CLASS = SOFT_MIN_MAX__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX2D__NAME = SOFT_MIN_MAX__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX2D__DATA = SOFT_MIN_MAX__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX2D__REQUIRES_GRAD = SOFT_MIN_MAX__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX2D__SUB_MODULE = SOFT_MIN_MAX__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX2D__OPTIMIZER = SOFT_MIN_MAX__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX2D__LOSS = SOFT_MIN_MAX__LOSS;
+
+ /**
+ * The number of structural features of the '<em>Softmax2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX2D_FEATURE_COUNT = SOFT_MIN_MAX_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Softmax2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SOFTMAX2D_OPERATION_COUNT = SOFT_MIN_MAX_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.LogSoftmaxImpl <em>Log Softmax</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.LogSoftmaxImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl#getLogSoftmax()
+ * @generated
+ */
+ int LOG_SOFTMAX = 5;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SOFTMAX__BASE_CLASS = SOFT_MIN_MAX_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SOFTMAX__NAME = SOFT_MIN_MAX_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SOFTMAX__DATA = SOFT_MIN_MAX_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SOFTMAX__REQUIRES_GRAD = SOFT_MIN_MAX_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SOFTMAX__SUB_MODULE = SOFT_MIN_MAX_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SOFTMAX__OPTIMIZER = SOFT_MIN_MAX_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SOFTMAX__LOSS = SOFT_MIN_MAX_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Dim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SOFTMAX__DIM = SOFT_MIN_MAX_1__DIM;
+
+ /**
+ * The number of structural features of the '<em>Log Softmax</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SOFTMAX_FEATURE_COUNT = SOFT_MIN_MAX_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Log Softmax</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LOG_SOFTMAX_OPERATION_COUNT = SOFT_MIN_MAX_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.AdaptiveLogSoftmaxWithLossImpl <em>Adaptive Log Softmax With Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.AdaptiveLogSoftmaxWithLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl#getAdaptiveLogSoftmaxWithLoss()
+ * @generated
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__BASE_CLASS = SOFT_MIN_MAX__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__NAME = SOFT_MIN_MAX__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__DATA = SOFT_MIN_MAX__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__REQUIRES_GRAD = SOFT_MIN_MAX__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__SUB_MODULE = SOFT_MIN_MAX__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__OPTIMIZER = SOFT_MIN_MAX__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__LOSS = SOFT_MIN_MAX__LOSS;
+
+ /**
+ * The feature id for the '<em><b>In features</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__IN_FEATURES = SOFT_MIN_MAX_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Nclasses</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__NCLASSES = SOFT_MIN_MAX_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Cutoffs</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__CUTOFFS = SOFT_MIN_MAX_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Div value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__DIV_VALUE = SOFT_MIN_MAX_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Head biais</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__HEAD_BIAIS = SOFT_MIN_MAX_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Adaptive Log Softmax With Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS_FEATURE_COUNT = SOFT_MIN_MAX_FEATURE_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Adaptive Log Softmax With Loss</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ADAPTIVE_LOG_SOFTMAX_WITH_LOSS_OPERATION_COUNT = SOFT_MIN_MAX_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax <em>Soft Min Max</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Soft Min Max</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax
+ * @generated
+ */
+ EClass getSoftMinMax();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax_1 <em>Soft Min Max 1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Soft Min Max 1</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax_1
+ * @generated
+ */
+ EClass getSoftMinMax_1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax_1#getDim <em>Dim</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dim</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax_1#getDim()
+ * @see #getSoftMinMax_1()
+ * @generated
+ */
+ EAttribute getSoftMinMax_1_Dim();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmin <em>Softmin</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Softmin</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmin
+ * @generated
+ */
+ EClass getSoftmin();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmax <em>Softmax</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Softmax</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmax
+ * @generated
+ */
+ EClass getSoftmax();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmax2d <em>Softmax2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Softmax2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmax2d
+ * @generated
+ */
+ EClass getSoftmax2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.LogSoftmax <em>Log Softmax</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Log Softmax</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.LogSoftmax
+ * @generated
+ */
+ EClass getLogSoftmax();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss <em>Adaptive Log Softmax With Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Adaptive Log Softmax With Loss</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss
+ * @generated
+ */
+ EClass getAdaptiveLogSoftmaxWithLoss();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getIn_features <em>In features</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>In features</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getIn_features()
+ * @see #getAdaptiveLogSoftmaxWithLoss()
+ * @generated
+ */
+ EAttribute getAdaptiveLogSoftmaxWithLoss_In_features();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getN_classes <em>Nclasses</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Nclasses</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getN_classes()
+ * @see #getAdaptiveLogSoftmaxWithLoss()
+ * @generated
+ */
+ EAttribute getAdaptiveLogSoftmaxWithLoss_N_classes();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getCutoffs <em>Cutoffs</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Cutoffs</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getCutoffs()
+ * @see #getAdaptiveLogSoftmaxWithLoss()
+ * @generated
+ */
+ EAttribute getAdaptiveLogSoftmaxWithLoss_Cutoffs();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getDiv_value <em>Div value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Div value</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#getDiv_value()
+ * @see #getAdaptiveLogSoftmaxWithLoss()
+ * @generated
+ */
+ EAttribute getAdaptiveLogSoftmaxWithLoss_Div_value();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#isHead_biais <em>Head biais</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Head biais</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss#isHead_biais()
+ * @see #getAdaptiveLogSoftmaxWithLoss()
+ * @generated
+ */
+ EAttribute getAdaptiveLogSoftmaxWithLoss_Head_biais();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ SoftMinMaxActivationsFactory getSoftMinMaxActivationsFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxImpl <em>Soft Min Max</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl#getSoftMinMax()
+ * @generated
+ */
+ EClass SOFT_MIN_MAX = eINSTANCE.getSoftMinMax();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMax_1Impl <em>Soft Min Max 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMax_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl#getSoftMinMax_1()
+ * @generated
+ */
+ EClass SOFT_MIN_MAX_1 = eINSTANCE.getSoftMinMax_1();
+
+ /**
+ * The meta object literal for the '<em><b>Dim</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SOFT_MIN_MAX_1__DIM = eINSTANCE.getSoftMinMax_1_Dim();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftminImpl <em>Softmin</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftminImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl#getSoftmin()
+ * @generated
+ */
+ EClass SOFTMIN = eINSTANCE.getSoftmin();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftmaxImpl <em>Softmax</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftmaxImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl#getSoftmax()
+ * @generated
+ */
+ EClass SOFTMAX = eINSTANCE.getSoftmax();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.Softmax2dImpl <em>Softmax2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.Softmax2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl#getSoftmax2d()
+ * @generated
+ */
+ EClass SOFTMAX2D = eINSTANCE.getSoftmax2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.LogSoftmaxImpl <em>Log Softmax</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.LogSoftmaxImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl#getLogSoftmax()
+ * @generated
+ */
+ EClass LOG_SOFTMAX = eINSTANCE.getLogSoftmax();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.AdaptiveLogSoftmaxWithLossImpl <em>Adaptive Log Softmax With Loss</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.AdaptiveLogSoftmaxWithLossImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl#getAdaptiveLogSoftmaxWithLoss()
+ * @generated
+ */
+ EClass ADAPTIVE_LOG_SOFTMAX_WITH_LOSS = eINSTANCE.getAdaptiveLogSoftmaxWithLoss();
+
+ /**
+ * The meta object literal for the '<em><b>In features</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__IN_FEATURES = eINSTANCE.getAdaptiveLogSoftmaxWithLoss_In_features();
+
+ /**
+ * The meta object literal for the '<em><b>Nclasses</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__NCLASSES = eINSTANCE.getAdaptiveLogSoftmaxWithLoss_N_classes();
+
+ /**
+ * The meta object literal for the '<em><b>Cutoffs</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__CUTOFFS = eINSTANCE.getAdaptiveLogSoftmaxWithLoss_Cutoffs();
+
+ /**
+ * The meta object literal for the '<em><b>Div value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__DIV_VALUE = eINSTANCE.getAdaptiveLogSoftmaxWithLoss_Div_value();
+
+ /**
+ * The meta object literal for the '<em><b>Head biais</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__HEAD_BIAIS = eINSTANCE.getAdaptiveLogSoftmaxWithLoss_Head_biais();
+
+ }
+
+} //SoftMinMaxActivationsPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/SoftMinMax_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/SoftMinMax_1.java
new file mode 100644
index 0000000..83aaa24
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/SoftMinMax_1.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Soft Min Max 1</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax_1#getDim <em>Dim</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage#getSoftMinMax_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SoftMinMax_1 extends SoftMinMax {
+ /**
+ * Returns the value of the '<em><b>Dim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dim</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dim</em>' attribute.
+ * @see #setDim(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage#getSoftMinMax_1_Dim()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getDim();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax_1#getDim <em>Dim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dim</em>' attribute.
+ * @see #getDim()
+ * @generated
+ */
+ void setDim(int value);
+
+} // SoftMinMax_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/Softmax.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/Softmax.java
new file mode 100644
index 0000000..0075b51
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/Softmax.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Softmax</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage#getSoftmax()
+ * @model
+ * @generated
+ */
+public interface Softmax extends SoftMinMax_1 {
+} // Softmax
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/Softmax2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/Softmax2d.java
new file mode 100644
index 0000000..23ca6fd
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/Softmax2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Softmax2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage#getSoftmax2d()
+ * @model
+ * @generated
+ */
+public interface Softmax2d extends SoftMinMax {
+} // Softmax2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/Softmin.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/Softmin.java
new file mode 100644
index 0000000..366ad45
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/Softmin.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Softmin</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage#getSoftmin()
+ * @model
+ * @generated
+ */
+public interface Softmin extends SoftMinMax_1 {
+} // Softmin
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/AdaptiveLogSoftmaxWithLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/AdaptiveLogSoftmaxWithLossImpl.java
new file mode 100644
index 0000000..4868fb2
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/AdaptiveLogSoftmaxWithLossImpl.java
@@ -0,0 +1,385 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Adaptive Log Softmax With Loss</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.AdaptiveLogSoftmaxWithLossImpl#getIn_features <em>In features</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.AdaptiveLogSoftmaxWithLossImpl#getN_classes <em>Nclasses</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.AdaptiveLogSoftmaxWithLossImpl#getCutoffs <em>Cutoffs</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.AdaptiveLogSoftmaxWithLossImpl#getDiv_value <em>Div value</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.AdaptiveLogSoftmaxWithLossImpl#isHead_biais <em>Head biais</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class AdaptiveLogSoftmaxWithLossImpl extends SoftMinMaxImpl implements AdaptiveLogSoftmaxWithLoss {
+ /**
+ * The default value of the '{@link #getIn_features() <em>In features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIn_features()
+ * @generated
+ * @ordered
+ */
+ protected static final int IN_FEATURES_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIn_features() <em>In features</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIn_features()
+ * @generated
+ * @ordered
+ */
+ protected int in_features = IN_FEATURES_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getN_classes() <em>Nclasses</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getN_classes()
+ * @generated
+ * @ordered
+ */
+ protected static final int NCLASSES_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getN_classes() <em>Nclasses</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getN_classes()
+ * @generated
+ * @ordered
+ */
+ protected int n_classes = NCLASSES_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getCutoffs() <em>Cutoffs</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCutoffs()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> cutoffs;
+
+ /**
+ * The default value of the '{@link #getDiv_value() <em>Div value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDiv_value()
+ * @generated
+ * @ordered
+ */
+ protected static final double DIV_VALUE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getDiv_value() <em>Div value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDiv_value()
+ * @generated
+ * @ordered
+ */
+ protected double div_value = DIV_VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isHead_biais() <em>Head biais</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isHead_biais()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean HEAD_BIAIS_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isHead_biais() <em>Head biais</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isHead_biais()
+ * @generated
+ * @ordered
+ */
+ protected boolean head_biais = HEAD_BIAIS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdaptiveLogSoftmaxWithLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SoftMinMaxActivationsPackage.Literals.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getIn_features() {
+ return in_features;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIn_features(int newIn_features) {
+ int oldIn_features = in_features;
+ in_features = newIn_features;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__IN_FEATURES, oldIn_features, in_features));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getN_classes() {
+ return n_classes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setN_classes(int newN_classes) {
+ int oldN_classes = n_classes;
+ n_classes = newN_classes;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__NCLASSES, oldN_classes, n_classes));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getCutoffs() {
+ if (cutoffs == null) {
+ cutoffs = new EDataTypeUniqueEList<Integer>(Integer.class, this, SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__CUTOFFS);
+ }
+ return cutoffs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getDiv_value() {
+ return div_value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDiv_value(double newDiv_value) {
+ double oldDiv_value = div_value;
+ div_value = newDiv_value;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__DIV_VALUE, oldDiv_value, div_value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isHead_biais() {
+ return head_biais;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setHead_biais(boolean newHead_biais) {
+ boolean oldHead_biais = head_biais;
+ head_biais = newHead_biais;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__HEAD_BIAIS, oldHead_biais, head_biais));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__IN_FEATURES:
+ return getIn_features();
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__NCLASSES:
+ return getN_classes();
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__CUTOFFS:
+ return getCutoffs();
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__DIV_VALUE:
+ return getDiv_value();
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__HEAD_BIAIS:
+ return isHead_biais();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__IN_FEATURES:
+ setIn_features((Integer)newValue);
+ return;
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__NCLASSES:
+ setN_classes((Integer)newValue);
+ return;
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__CUTOFFS:
+ getCutoffs().clear();
+ getCutoffs().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__DIV_VALUE:
+ setDiv_value((Double)newValue);
+ return;
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__HEAD_BIAIS:
+ setHead_biais((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__IN_FEATURES:
+ setIn_features(IN_FEATURES_EDEFAULT);
+ return;
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__NCLASSES:
+ setN_classes(NCLASSES_EDEFAULT);
+ return;
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__CUTOFFS:
+ getCutoffs().clear();
+ return;
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__DIV_VALUE:
+ setDiv_value(DIV_VALUE_EDEFAULT);
+ return;
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__HEAD_BIAIS:
+ setHead_biais(HEAD_BIAIS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__IN_FEATURES:
+ return in_features != IN_FEATURES_EDEFAULT;
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__NCLASSES:
+ return n_classes != NCLASSES_EDEFAULT;
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__CUTOFFS:
+ return cutoffs != null && !cutoffs.isEmpty();
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__DIV_VALUE:
+ return div_value != DIV_VALUE_EDEFAULT;
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__HEAD_BIAIS:
+ return head_biais != HEAD_BIAIS_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (in_features: "); //$NON-NLS-1$
+ result.append(in_features);
+ result.append(", n_classes: "); //$NON-NLS-1$
+ result.append(n_classes);
+ result.append(", cutoffs: "); //$NON-NLS-1$
+ result.append(cutoffs);
+ result.append(", div_value: "); //$NON-NLS-1$
+ result.append(div_value);
+ result.append(", head_biais: "); //$NON-NLS-1$
+ result.append(head_biais);
+ result.append(')');
+ return result.toString();
+ }
+
+} //AdaptiveLogSoftmaxWithLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/LogSoftmaxImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/LogSoftmaxImpl.java
new file mode 100644
index 0000000..5707395
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/LogSoftmaxImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.LogSoftmax;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Log Softmax</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class LogSoftmaxImpl extends SoftMinMax_1Impl implements LogSoftmax {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LogSoftmaxImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SoftMinMaxActivationsPackage.Literals.LOG_SOFTMAX;
+ }
+
+} //LogSoftmaxImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftMinMaxActivationsFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftMinMaxActivationsFactoryImpl.java
new file mode 100644
index 0000000..e15a90b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftMinMaxActivationsFactoryImpl.java
@@ -0,0 +1,154 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SoftMinMaxActivationsFactoryImpl extends EFactoryImpl implements SoftMinMaxActivationsFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SoftMinMaxActivationsFactory init() {
+ try {
+ SoftMinMaxActivationsFactory theSoftMinMaxActivationsFactory = (SoftMinMaxActivationsFactory)EPackage.Registry.INSTANCE.getEFactory(SoftMinMaxActivationsPackage.eNS_URI);
+ if (theSoftMinMaxActivationsFactory != null) {
+ return theSoftMinMaxActivationsFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new SoftMinMaxActivationsFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SoftMinMaxActivationsFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case SoftMinMaxActivationsPackage.SOFTMIN: return createSoftmin();
+ case SoftMinMaxActivationsPackage.SOFTMAX: return createSoftmax();
+ case SoftMinMaxActivationsPackage.SOFTMAX2D: return createSoftmax2d();
+ case SoftMinMaxActivationsPackage.LOG_SOFTMAX: return createLogSoftmax();
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS: return createAdaptiveLogSoftmaxWithLoss();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Softmin createSoftmin() {
+ SoftminImpl softmin = new SoftminImpl();
+ return softmin;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Softmax createSoftmax() {
+ SoftmaxImpl softmax = new SoftmaxImpl();
+ return softmax;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Softmax2d createSoftmax2d() {
+ Softmax2dImpl softmax2d = new Softmax2dImpl();
+ return softmax2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public LogSoftmax createLogSoftmax() {
+ LogSoftmaxImpl logSoftmax = new LogSoftmaxImpl();
+ return logSoftmax;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AdaptiveLogSoftmaxWithLoss createAdaptiveLogSoftmaxWithLoss() {
+ AdaptiveLogSoftmaxWithLossImpl adaptiveLogSoftmaxWithLoss = new AdaptiveLogSoftmaxWithLossImpl();
+ return adaptiveLogSoftmaxWithLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public SoftMinMaxActivationsPackage getSoftMinMaxActivationsPackage() {
+ return (SoftMinMaxActivationsPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static SoftMinMaxActivationsPackage getPackage() {
+ return SoftMinMaxActivationsPackage.eINSTANCE;
+ }
+
+} //SoftMinMaxActivationsFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftMinMaxActivationsPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftMinMaxActivationsPackageImpl.java
new file mode 100644
index 0000000..c0c8e51
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftMinMaxActivationsPackageImpl.java
@@ -0,0 +1,569 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.LogSoftmax;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax_1;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmax;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmax2d;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SoftMinMaxActivationsPackageImpl extends EPackageImpl implements SoftMinMaxActivationsPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass softMinMaxEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass softMinMax_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass softminEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass softmaxEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass softmax2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass logSoftmaxEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass adaptiveLogSoftmaxWithLossEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private SoftMinMaxActivationsPackageImpl() {
+ super(eNS_URI, SoftMinMaxActivationsFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link SoftMinMaxActivationsPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static SoftMinMaxActivationsPackage init() {
+ if (isInited) return (SoftMinMaxActivationsPackage)EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredSoftMinMaxActivationsPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = registeredSoftMinMaxActivationsPackage instanceof SoftMinMaxActivationsPackageImpl ? (SoftMinMaxActivationsPackageImpl)registeredSoftMinMaxActivationsPackage : new SoftMinMaxActivationsPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theSoftMinMaxActivationsPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(SoftMinMaxActivationsPackage.eNS_URI, theSoftMinMaxActivationsPackage);
+ return theSoftMinMaxActivationsPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSoftMinMax() {
+ return softMinMaxEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSoftMinMax_1() {
+ return softMinMax_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSoftMinMax_1_Dim() {
+ return (EAttribute)softMinMax_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSoftmin() {
+ return softminEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSoftmax() {
+ return softmaxEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSoftmax2d() {
+ return softmax2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getLogSoftmax() {
+ return logSoftmaxEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getAdaptiveLogSoftmaxWithLoss() {
+ return adaptiveLogSoftmaxWithLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getAdaptiveLogSoftmaxWithLoss_In_features() {
+ return (EAttribute)adaptiveLogSoftmaxWithLossEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getAdaptiveLogSoftmaxWithLoss_N_classes() {
+ return (EAttribute)adaptiveLogSoftmaxWithLossEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getAdaptiveLogSoftmaxWithLoss_Cutoffs() {
+ return (EAttribute)adaptiveLogSoftmaxWithLossEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getAdaptiveLogSoftmaxWithLoss_Div_value() {
+ return (EAttribute)adaptiveLogSoftmaxWithLossEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getAdaptiveLogSoftmaxWithLoss_Head_biais() {
+ return (EAttribute)adaptiveLogSoftmaxWithLossEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public SoftMinMaxActivationsFactory getSoftMinMaxActivationsFactory() {
+ return (SoftMinMaxActivationsFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ softMinMaxEClass = createEClass(SOFT_MIN_MAX);
+
+ softMinMax_1EClass = createEClass(SOFT_MIN_MAX_1);
+ createEAttribute(softMinMax_1EClass, SOFT_MIN_MAX_1__DIM);
+
+ softminEClass = createEClass(SOFTMIN);
+
+ softmaxEClass = createEClass(SOFTMAX);
+
+ softmax2dEClass = createEClass(SOFTMAX2D);
+
+ logSoftmaxEClass = createEClass(LOG_SOFTMAX);
+
+ adaptiveLogSoftmaxWithLossEClass = createEClass(ADAPTIVE_LOG_SOFTMAX_WITH_LOSS);
+ createEAttribute(adaptiveLogSoftmaxWithLossEClass, ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__IN_FEATURES);
+ createEAttribute(adaptiveLogSoftmaxWithLossEClass, ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__NCLASSES);
+ createEAttribute(adaptiveLogSoftmaxWithLossEClass, ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__CUTOFFS);
+ createEAttribute(adaptiveLogSoftmaxWithLossEClass, ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__DIV_VALUE);
+ createEAttribute(adaptiveLogSoftmaxWithLossEClass, ADAPTIVE_LOG_SOFTMAX_WITH_LOSS__HEAD_BIAIS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ softMinMaxEClass.getESuperTypes().add(theModulePackage.getModel());
+ softMinMax_1EClass.getESuperTypes().add(this.getSoftMinMax());
+ softminEClass.getESuperTypes().add(this.getSoftMinMax_1());
+ softmaxEClass.getESuperTypes().add(this.getSoftMinMax_1());
+ softmax2dEClass.getESuperTypes().add(this.getSoftMinMax());
+ logSoftmaxEClass.getESuperTypes().add(this.getSoftMinMax_1());
+ adaptiveLogSoftmaxWithLossEClass.getESuperTypes().add(this.getSoftMinMax());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(softMinMaxEClass, SoftMinMax.class, "SoftMinMax", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(softMinMax_1EClass, SoftMinMax_1.class, "SoftMinMax_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getSoftMinMax_1_Dim(), theTypesPackage.getInteger(), "dim", null, 0, 1, SoftMinMax_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(softminEClass, Softmin.class, "Softmin", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(softmaxEClass, Softmax.class, "Softmax", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(softmax2dEClass, Softmax2d.class, "Softmax2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(logSoftmaxEClass, LogSoftmax.class, "LogSoftmax", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(adaptiveLogSoftmaxWithLossEClass, AdaptiveLogSoftmaxWithLoss.class, "AdaptiveLogSoftmaxWithLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getAdaptiveLogSoftmaxWithLoss_In_features(), theTypesPackage.getInteger(), "in_features", null, 1, 1, AdaptiveLogSoftmaxWithLoss.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getAdaptiveLogSoftmaxWithLoss_N_classes(), theTypesPackage.getInteger(), "n_classes", null, 1, 1, AdaptiveLogSoftmaxWithLoss.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getAdaptiveLogSoftmaxWithLoss_Cutoffs(), theTypesPackage.getInteger(), "cutoffs", null, 0, -1, AdaptiveLogSoftmaxWithLoss.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getAdaptiveLogSoftmaxWithLoss_Div_value(), theTypesPackage.getReal(), "div_value", null, 0, 1, AdaptiveLogSoftmaxWithLoss.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getAdaptiveLogSoftmaxWithLoss_Head_biais(), theTypesPackage.getBoolean(), "head_biais", null, 0, 1, AdaptiveLogSoftmaxWithLoss.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ }
+
+} //SoftMinMaxActivationsPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftMinMaxImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftMinMaxImpl.java
new file mode 100644
index 0000000..89fd0c4
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftMinMaxImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Soft Min Max</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class SoftMinMaxImpl extends ModelImpl implements SoftMinMax {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoftMinMaxImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SoftMinMaxActivationsPackage.Literals.SOFT_MIN_MAX;
+ }
+
+} //SoftMinMaxImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftMinMax_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftMinMax_1Impl.java
new file mode 100644
index 0000000..94af71a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftMinMax_1Impl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Soft Min Max 1</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMax_1Impl#getDim <em>Dim</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class SoftMinMax_1Impl extends SoftMinMaxImpl implements SoftMinMax_1 {
+ /**
+ * The default value of the '{@link #getDim() <em>Dim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDim()
+ * @generated
+ * @ordered
+ */
+ protected static final int DIM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getDim() <em>Dim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDim()
+ * @generated
+ * @ordered
+ */
+ protected int dim = DIM_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoftMinMax_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SoftMinMaxActivationsPackage.Literals.SOFT_MIN_MAX_1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getDim() {
+ return dim;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDim(int newDim) {
+ int oldDim = dim;
+ dim = newDim;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SoftMinMaxActivationsPackage.SOFT_MIN_MAX_1__DIM, oldDim, dim));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case SoftMinMaxActivationsPackage.SOFT_MIN_MAX_1__DIM:
+ return getDim();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case SoftMinMaxActivationsPackage.SOFT_MIN_MAX_1__DIM:
+ setDim((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case SoftMinMaxActivationsPackage.SOFT_MIN_MAX_1__DIM:
+ setDim(DIM_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case SoftMinMaxActivationsPackage.SOFT_MIN_MAX_1__DIM:
+ return dim != DIM_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (dim: "); //$NON-NLS-1$
+ result.append(dim);
+ result.append(')');
+ return result.toString();
+ }
+
+} //SoftMinMax_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/Softmax2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/Softmax2dImpl.java
new file mode 100644
index 0000000..d32b9da
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/Softmax2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmax2d;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Softmax2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class Softmax2dImpl extends SoftMinMaxImpl implements Softmax2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Softmax2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SoftMinMaxActivationsPackage.Literals.SOFTMAX2D;
+ }
+
+} //Softmax2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftmaxImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftmaxImpl.java
new file mode 100644
index 0000000..deebd09
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftmaxImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmax;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Softmax</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SoftmaxImpl extends SoftMinMax_1Impl implements Softmax {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoftmaxImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SoftMinMaxActivationsPackage.Literals.SOFTMAX;
+ }
+
+} //SoftmaxImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftminImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftminImpl.java
new file mode 100644
index 0000000..9913586
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/impl/SoftminImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Softmin</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SoftminImpl extends SoftMinMax_1Impl implements Softmin {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoftminImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return SoftMinMaxActivationsPackage.Literals.SOFTMIN;
+ }
+
+} //SoftminImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/util/SoftMinMaxActivationsAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/util/SoftMinMaxActivationsAdapterFactory.java
new file mode 100644
index 0000000..dd393b9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/util/SoftMinMaxActivationsAdapterFactory.java
@@ -0,0 +1,255 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage
+ * @generated
+ */
+public class SoftMinMaxActivationsAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static SoftMinMaxActivationsPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SoftMinMaxActivationsAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = SoftMinMaxActivationsPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoftMinMaxActivationsSwitch<Adapter> modelSwitch =
+ new SoftMinMaxActivationsSwitch<Adapter>() {
+ @Override
+ public Adapter caseSoftMinMax(SoftMinMax object) {
+ return createSoftMinMaxAdapter();
+ }
+ @Override
+ public Adapter caseSoftMinMax_1(SoftMinMax_1 object) {
+ return createSoftMinMax_1Adapter();
+ }
+ @Override
+ public Adapter caseSoftmin(Softmin object) {
+ return createSoftminAdapter();
+ }
+ @Override
+ public Adapter caseSoftmax(Softmax object) {
+ return createSoftmaxAdapter();
+ }
+ @Override
+ public Adapter caseSoftmax2d(Softmax2d object) {
+ return createSoftmax2dAdapter();
+ }
+ @Override
+ public Adapter caseLogSoftmax(LogSoftmax object) {
+ return createLogSoftmaxAdapter();
+ }
+ @Override
+ public Adapter caseAdaptiveLogSoftmaxWithLoss(AdaptiveLogSoftmaxWithLoss object) {
+ return createAdaptiveLogSoftmaxWithLossAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax <em>Soft Min Max</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax
+ * @generated
+ */
+ public Adapter createSoftMinMaxAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax_1 <em>Soft Min Max 1</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMax_1
+ * @generated
+ */
+ public Adapter createSoftMinMax_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmin <em>Softmin</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmin
+ * @generated
+ */
+ public Adapter createSoftminAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmax <em>Softmax</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmax
+ * @generated
+ */
+ public Adapter createSoftmaxAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmax2d <em>Softmax2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.Softmax2d
+ * @generated
+ */
+ public Adapter createSoftmax2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.LogSoftmax <em>Log Softmax</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.LogSoftmax
+ * @generated
+ */
+ public Adapter createLogSoftmaxAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss <em>Adaptive Log Softmax With Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.AdaptiveLogSoftmaxWithLoss
+ * @generated
+ */
+ public Adapter createAdaptiveLogSoftmaxWithLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //SoftMinMaxActivationsAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/util/SoftMinMaxActivationsSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/util/SoftMinMaxActivationsSwitch.java
new file mode 100644
index 0000000..6ccd455
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/SoftMinMaxActivations/util/SoftMinMaxActivationsSwitch.java
@@ -0,0 +1,276 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage
+ * @generated
+ */
+public class SoftMinMaxActivationsSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static SoftMinMaxActivationsPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SoftMinMaxActivationsSwitch() {
+ if (modelPackage == null) {
+ modelPackage = SoftMinMaxActivationsPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case SoftMinMaxActivationsPackage.SOFT_MIN_MAX: {
+ SoftMinMax softMinMax = (SoftMinMax)theEObject;
+ T result = caseSoftMinMax(softMinMax);
+ if (result == null) result = caseModel(softMinMax);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case SoftMinMaxActivationsPackage.SOFT_MIN_MAX_1: {
+ SoftMinMax_1 softMinMax_1 = (SoftMinMax_1)theEObject;
+ T result = caseSoftMinMax_1(softMinMax_1);
+ if (result == null) result = caseSoftMinMax(softMinMax_1);
+ if (result == null) result = caseModel(softMinMax_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case SoftMinMaxActivationsPackage.SOFTMIN: {
+ Softmin softmin = (Softmin)theEObject;
+ T result = caseSoftmin(softmin);
+ if (result == null) result = caseSoftMinMax_1(softmin);
+ if (result == null) result = caseSoftMinMax(softmin);
+ if (result == null) result = caseModel(softmin);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case SoftMinMaxActivationsPackage.SOFTMAX: {
+ Softmax softmax = (Softmax)theEObject;
+ T result = caseSoftmax(softmax);
+ if (result == null) result = caseSoftMinMax_1(softmax);
+ if (result == null) result = caseSoftMinMax(softmax);
+ if (result == null) result = caseModel(softmax);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case SoftMinMaxActivationsPackage.SOFTMAX2D: {
+ Softmax2d softmax2d = (Softmax2d)theEObject;
+ T result = caseSoftmax2d(softmax2d);
+ if (result == null) result = caseSoftMinMax(softmax2d);
+ if (result == null) result = caseModel(softmax2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case SoftMinMaxActivationsPackage.LOG_SOFTMAX: {
+ LogSoftmax logSoftmax = (LogSoftmax)theEObject;
+ T result = caseLogSoftmax(logSoftmax);
+ if (result == null) result = caseSoftMinMax_1(logSoftmax);
+ if (result == null) result = caseSoftMinMax(logSoftmax);
+ if (result == null) result = caseModel(logSoftmax);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case SoftMinMaxActivationsPackage.ADAPTIVE_LOG_SOFTMAX_WITH_LOSS: {
+ AdaptiveLogSoftmaxWithLoss adaptiveLogSoftmaxWithLoss = (AdaptiveLogSoftmaxWithLoss)theEObject;
+ T result = caseAdaptiveLogSoftmaxWithLoss(adaptiveLogSoftmaxWithLoss);
+ if (result == null) result = caseSoftMinMax(adaptiveLogSoftmaxWithLoss);
+ if (result == null) result = caseModel(adaptiveLogSoftmaxWithLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Soft Min Max</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Soft Min Max</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSoftMinMax(SoftMinMax object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Soft Min Max 1</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Soft Min Max 1</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSoftMinMax_1(SoftMinMax_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Softmin</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Softmin</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSoftmin(Softmin object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Softmax</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Softmax</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSoftmax(Softmax object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Softmax2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Softmax2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSoftmax2d(Softmax2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Log Softmax</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Log Softmax</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLogSoftmax(LogSoftmax object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Adaptive Log Softmax With Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Adaptive Log Softmax With Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAdaptiveLogSoftmaxWithLoss(AdaptiveLogSoftmaxWithLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //SoftMinMaxActivationsSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/Embedding.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/Embedding.java
new file mode 100644
index 0000000..0d3404e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/Embedding.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Embedding</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Embedding#getPadding_idx <em>Padding idx</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage#getEmbedding()
+ * @model
+ * @generated
+ */
+public interface Embedding extends Sparse_layers {
+ /**
+ * Returns the value of the '<em><b>Padding idx</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Padding idx</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Padding idx</em>' attribute.
+ * @see #setPadding_idx(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage#getEmbedding_Padding_idx()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getPadding_idx();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Embedding#getPadding_idx <em>Padding idx</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Padding idx</em>' attribute.
+ * @see #getPadding_idx()
+ * @generated
+ */
+ void setPadding_idx(int value);
+
+} // Embedding
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/EmbeddingBag.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/EmbeddingBag.java
new file mode 100644
index 0000000..bddb236
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/EmbeddingBag.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Embedding Bag</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.EmbeddingBag#getMode <em>Mode</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.EmbeddingBag#isInclude_last_offset <em>Include last offset</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage#getEmbeddingBag()
+ * @model
+ * @generated
+ */
+public interface EmbeddingBag extends Sparse_layers {
+ /**
+ * Returns the value of the '<em><b>Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mode</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mode</em>' attribute.
+ * @see #setMode(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage#getEmbeddingBag_Mode()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getMode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.EmbeddingBag#getMode <em>Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mode</em>' attribute.
+ * @see #getMode()
+ * @generated
+ */
+ void setMode(String value);
+
+ /**
+ * Returns the value of the '<em><b>Include last offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Include last offset</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Include last offset</em>' attribute.
+ * @see #setInclude_last_offset(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage#getEmbeddingBag_Include_last_offset()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isInclude_last_offset();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.EmbeddingBag#isInclude_last_offset <em>Include last offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Include last offset</em>' attribute.
+ * @see #isInclude_last_offset()
+ * @generated
+ */
+ void setInclude_last_offset(boolean value);
+
+} // EmbeddingBag
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/Sparse_layers.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/Sparse_layers.java
new file mode 100644
index 0000000..20a4f2a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/Sparse_layers.java
@@ -0,0 +1,195 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sparse layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getNum_embeddings <em>Num embeddings</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getEmbedding_dim <em>Embedding dim</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getMax_norm <em>Max norm</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getNorm_type <em>Norm type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#isSparse <em>Sparse</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#isScale_grad_by_freq <em>Scale grad by freq</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage#getSparse_layers()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Sparse_layers extends Model {
+ /**
+ * Returns the value of the '<em><b>Num embeddings</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Num embeddings</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Num embeddings</em>' attribute.
+ * @see #setNum_embeddings(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage#getSparse_layers_Num_embeddings()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getNum_embeddings();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getNum_embeddings <em>Num embeddings</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Num embeddings</em>' attribute.
+ * @see #getNum_embeddings()
+ * @generated
+ */
+ void setNum_embeddings(int value);
+
+ /**
+ * Returns the value of the '<em><b>Embedding dim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Embedding dim</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Embedding dim</em>' attribute.
+ * @see #setEmbedding_dim(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage#getSparse_layers_Embedding_dim()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getEmbedding_dim();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getEmbedding_dim <em>Embedding dim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Embedding dim</em>' attribute.
+ * @see #getEmbedding_dim()
+ * @generated
+ */
+ void setEmbedding_dim(int value);
+
+ /**
+ * Returns the value of the '<em><b>Max norm</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Max norm</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Max norm</em>' attribute.
+ * @see #setMax_norm(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage#getSparse_layers_Max_norm()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getMax_norm();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getMax_norm <em>Max norm</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Max norm</em>' attribute.
+ * @see #getMax_norm()
+ * @generated
+ */
+ void setMax_norm(double value);
+
+ /**
+ * Returns the value of the '<em><b>Norm type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Norm type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Norm type</em>' attribute.
+ * @see #setNorm_type(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage#getSparse_layers_Norm_type()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='norm_type '"
+ * @generated
+ */
+ double getNorm_type();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getNorm_type <em>Norm type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Norm type</em>' attribute.
+ * @see #getNorm_type()
+ * @generated
+ */
+ void setNorm_type(double value);
+
+ /**
+ * Returns the value of the '<em><b>Sparse</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Sparse</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Sparse</em>' attribute.
+ * @see #setSparse(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage#getSparse_layers_Sparse()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isSparse();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#isSparse <em>Sparse</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Sparse</em>' attribute.
+ * @see #isSparse()
+ * @generated
+ */
+ void setSparse(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Scale grad by freq</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Scale grad by freq</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Scale grad by freq</em>' attribute.
+ * @see #setScale_grad_by_freq(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage#getSparse_layers_Scale_grad_by_freq()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isScale_grad_by_freq();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#isScale_grad_by_freq <em>Scale grad by freq</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Scale grad by freq</em>' attribute.
+ * @see #isScale_grad_by_freq()
+ * @generated
+ */
+ void setScale_grad_by_freq(boolean value);
+
+} // Sparse_layers
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/Sparse_layersFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/Sparse_layersFactory.java
new file mode 100644
index 0000000..dcb6bc3
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/Sparse_layersFactory.java
@@ -0,0 +1,60 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage
+ * @generated
+ */
+public interface Sparse_layersFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Sparse_layersFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Embedding</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Embedding</em>'.
+ * @generated
+ */
+ Embedding createEmbedding();
+
+ /**
+ * Returns a new object of class '<em>Embedding Bag</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Embedding Bag</em>'.
+ * @generated
+ */
+ EmbeddingBag createEmbeddingBag();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Sparse_layersPackage getSparse_layersPackage();
+
+} //Sparse_layersFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/Sparse_layersPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/Sparse_layersPackage.java
new file mode 100644
index 0000000..c7d281e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/Sparse_layersPackage.java
@@ -0,0 +1,788 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Sparse_layersPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Sparse_layers"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/sparse/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Sparse_layers"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Sparse_layersPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersImpl <em>Sparse layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl#getSparse_layers()
+ * @generated
+ */
+ int SPARSE_LAYERS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Num embeddings</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS__NUM_EMBEDDINGS = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Embedding dim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS__EMBEDDING_DIM = ModulePackage.MODEL_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Max norm</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS__MAX_NORM = ModulePackage.MODEL_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Norm type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS__NORM_TYPE = ModulePackage.MODEL_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Sparse</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS__SPARSE = ModulePackage.MODEL_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Scale grad by freq</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS__SCALE_GRAD_BY_FREQ = ModulePackage.MODEL_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Sparse layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 6;
+
+ /**
+ * The number of operations of the '<em>Sparse layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SPARSE_LAYERS_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.EmbeddingImpl <em>Embedding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.EmbeddingImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl#getEmbedding()
+ * @generated
+ */
+ int EMBEDDING = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__BASE_CLASS = SPARSE_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__NAME = SPARSE_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__DATA = SPARSE_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__REQUIRES_GRAD = SPARSE_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__SUB_MODULE = SPARSE_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__OPTIMIZER = SPARSE_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__LOSS = SPARSE_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Num embeddings</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__NUM_EMBEDDINGS = SPARSE_LAYERS__NUM_EMBEDDINGS;
+
+ /**
+ * The feature id for the '<em><b>Embedding dim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__EMBEDDING_DIM = SPARSE_LAYERS__EMBEDDING_DIM;
+
+ /**
+ * The feature id for the '<em><b>Max norm</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__MAX_NORM = SPARSE_LAYERS__MAX_NORM;
+
+ /**
+ * The feature id for the '<em><b>Norm type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__NORM_TYPE = SPARSE_LAYERS__NORM_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Sparse</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__SPARSE = SPARSE_LAYERS__SPARSE;
+
+ /**
+ * The feature id for the '<em><b>Scale grad by freq</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__SCALE_GRAD_BY_FREQ = SPARSE_LAYERS__SCALE_GRAD_BY_FREQ;
+
+ /**
+ * The feature id for the '<em><b>Padding idx</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING__PADDING_IDX = SPARSE_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Embedding</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_FEATURE_COUNT = SPARSE_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Embedding</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_OPERATION_COUNT = SPARSE_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.EmbeddingBagImpl <em>Embedding Bag</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.EmbeddingBagImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl#getEmbeddingBag()
+ * @generated
+ */
+ int EMBEDDING_BAG = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__BASE_CLASS = SPARSE_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__NAME = SPARSE_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__DATA = SPARSE_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__REQUIRES_GRAD = SPARSE_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__SUB_MODULE = SPARSE_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__OPTIMIZER = SPARSE_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__LOSS = SPARSE_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Num embeddings</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__NUM_EMBEDDINGS = SPARSE_LAYERS__NUM_EMBEDDINGS;
+
+ /**
+ * The feature id for the '<em><b>Embedding dim</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__EMBEDDING_DIM = SPARSE_LAYERS__EMBEDDING_DIM;
+
+ /**
+ * The feature id for the '<em><b>Max norm</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__MAX_NORM = SPARSE_LAYERS__MAX_NORM;
+
+ /**
+ * The feature id for the '<em><b>Norm type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__NORM_TYPE = SPARSE_LAYERS__NORM_TYPE;
+
+ /**
+ * The feature id for the '<em><b>Sparse</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__SPARSE = SPARSE_LAYERS__SPARSE;
+
+ /**
+ * The feature id for the '<em><b>Scale grad by freq</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__SCALE_GRAD_BY_FREQ = SPARSE_LAYERS__SCALE_GRAD_BY_FREQ;
+
+ /**
+ * The feature id for the '<em><b>Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__MODE = SPARSE_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Include last offset</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG__INCLUDE_LAST_OFFSET = SPARSE_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Embedding Bag</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG_FEATURE_COUNT = SPARSE_LAYERS_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Embedding Bag</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int EMBEDDING_BAG_OPERATION_COUNT = SPARSE_LAYERS_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers <em>Sparse layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Sparse layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers
+ * @generated
+ */
+ EClass getSparse_layers();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getNum_embeddings <em>Num embeddings</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Num embeddings</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getNum_embeddings()
+ * @see #getSparse_layers()
+ * @generated
+ */
+ EAttribute getSparse_layers_Num_embeddings();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getEmbedding_dim <em>Embedding dim</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Embedding dim</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getEmbedding_dim()
+ * @see #getSparse_layers()
+ * @generated
+ */
+ EAttribute getSparse_layers_Embedding_dim();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getMax_norm <em>Max norm</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Max norm</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getMax_norm()
+ * @see #getSparse_layers()
+ * @generated
+ */
+ EAttribute getSparse_layers_Max_norm();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getNorm_type <em>Norm type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Norm type</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#getNorm_type()
+ * @see #getSparse_layers()
+ * @generated
+ */
+ EAttribute getSparse_layers_Norm_type();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#isSparse <em>Sparse</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Sparse</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#isSparse()
+ * @see #getSparse_layers()
+ * @generated
+ */
+ EAttribute getSparse_layers_Sparse();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#isScale_grad_by_freq <em>Scale grad by freq</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Scale grad by freq</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers#isScale_grad_by_freq()
+ * @see #getSparse_layers()
+ * @generated
+ */
+ EAttribute getSparse_layers_Scale_grad_by_freq();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Embedding <em>Embedding</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Embedding</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Embedding
+ * @generated
+ */
+ EClass getEmbedding();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Embedding#getPadding_idx <em>Padding idx</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Padding idx</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Embedding#getPadding_idx()
+ * @see #getEmbedding()
+ * @generated
+ */
+ EAttribute getEmbedding_Padding_idx();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.EmbeddingBag <em>Embedding Bag</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Embedding Bag</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.EmbeddingBag
+ * @generated
+ */
+ EClass getEmbeddingBag();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.EmbeddingBag#getMode <em>Mode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Mode</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.EmbeddingBag#getMode()
+ * @see #getEmbeddingBag()
+ * @generated
+ */
+ EAttribute getEmbeddingBag_Mode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.EmbeddingBag#isInclude_last_offset <em>Include last offset</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Include last offset</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.EmbeddingBag#isInclude_last_offset()
+ * @see #getEmbeddingBag()
+ * @generated
+ */
+ EAttribute getEmbeddingBag_Include_last_offset();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Sparse_layersFactory getSparse_layersFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersImpl <em>Sparse layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl#getSparse_layers()
+ * @generated
+ */
+ EClass SPARSE_LAYERS = eINSTANCE.getSparse_layers();
+
+ /**
+ * The meta object literal for the '<em><b>Num embeddings</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SPARSE_LAYERS__NUM_EMBEDDINGS = eINSTANCE.getSparse_layers_Num_embeddings();
+
+ /**
+ * The meta object literal for the '<em><b>Embedding dim</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SPARSE_LAYERS__EMBEDDING_DIM = eINSTANCE.getSparse_layers_Embedding_dim();
+
+ /**
+ * The meta object literal for the '<em><b>Max norm</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SPARSE_LAYERS__MAX_NORM = eINSTANCE.getSparse_layers_Max_norm();
+
+ /**
+ * The meta object literal for the '<em><b>Norm type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SPARSE_LAYERS__NORM_TYPE = eINSTANCE.getSparse_layers_Norm_type();
+
+ /**
+ * The meta object literal for the '<em><b>Sparse</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SPARSE_LAYERS__SPARSE = eINSTANCE.getSparse_layers_Sparse();
+
+ /**
+ * The meta object literal for the '<em><b>Scale grad by freq</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute SPARSE_LAYERS__SCALE_GRAD_BY_FREQ = eINSTANCE.getSparse_layers_Scale_grad_by_freq();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.EmbeddingImpl <em>Embedding</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.EmbeddingImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl#getEmbedding()
+ * @generated
+ */
+ EClass EMBEDDING = eINSTANCE.getEmbedding();
+
+ /**
+ * The meta object literal for the '<em><b>Padding idx</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EMBEDDING__PADDING_IDX = eINSTANCE.getEmbedding_Padding_idx();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.EmbeddingBagImpl <em>Embedding Bag</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.EmbeddingBagImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl#getEmbeddingBag()
+ * @generated
+ */
+ EClass EMBEDDING_BAG = eINSTANCE.getEmbeddingBag();
+
+ /**
+ * The meta object literal for the '<em><b>Mode</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EMBEDDING_BAG__MODE = eINSTANCE.getEmbeddingBag_Mode();
+
+ /**
+ * The meta object literal for the '<em><b>Include last offset</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute EMBEDDING_BAG__INCLUDE_LAST_OFFSET = eINSTANCE.getEmbeddingBag_Include_last_offset();
+
+ }
+
+} //Sparse_layersPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/EmbeddingBagImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/EmbeddingBagImpl.java
new file mode 100644
index 0000000..bcb85b1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/EmbeddingBagImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.EmbeddingBag;
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Embedding Bag</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.EmbeddingBagImpl#getMode <em>Mode</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.EmbeddingBagImpl#isInclude_last_offset <em>Include last offset</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class EmbeddingBagImpl extends Sparse_layersImpl implements EmbeddingBag {
+ /**
+ * The default value of the '{@link #getMode() <em>Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMode()
+ * @generated
+ * @ordered
+ */
+ protected static final String MODE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getMode() <em>Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMode()
+ * @generated
+ * @ordered
+ */
+ protected String mode = MODE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isInclude_last_offset() <em>Include last offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInclude_last_offset()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean INCLUDE_LAST_OFFSET_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isInclude_last_offset() <em>Include last offset</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isInclude_last_offset()
+ * @generated
+ * @ordered
+ */
+ protected boolean include_last_offset = INCLUDE_LAST_OFFSET_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EmbeddingBagImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Sparse_layersPackage.Literals.EMBEDDING_BAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getMode() {
+ return mode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMode(String newMode) {
+ String oldMode = mode;
+ mode = newMode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Sparse_layersPackage.EMBEDDING_BAG__MODE, oldMode, mode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isInclude_last_offset() {
+ return include_last_offset;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setInclude_last_offset(boolean newInclude_last_offset) {
+ boolean oldInclude_last_offset = include_last_offset;
+ include_last_offset = newInclude_last_offset;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Sparse_layersPackage.EMBEDDING_BAG__INCLUDE_LAST_OFFSET, oldInclude_last_offset, include_last_offset));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Sparse_layersPackage.EMBEDDING_BAG__MODE:
+ return getMode();
+ case Sparse_layersPackage.EMBEDDING_BAG__INCLUDE_LAST_OFFSET:
+ return isInclude_last_offset();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Sparse_layersPackage.EMBEDDING_BAG__MODE:
+ setMode((String)newValue);
+ return;
+ case Sparse_layersPackage.EMBEDDING_BAG__INCLUDE_LAST_OFFSET:
+ setInclude_last_offset((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Sparse_layersPackage.EMBEDDING_BAG__MODE:
+ setMode(MODE_EDEFAULT);
+ return;
+ case Sparse_layersPackage.EMBEDDING_BAG__INCLUDE_LAST_OFFSET:
+ setInclude_last_offset(INCLUDE_LAST_OFFSET_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Sparse_layersPackage.EMBEDDING_BAG__MODE:
+ return MODE_EDEFAULT == null ? mode != null : !MODE_EDEFAULT.equals(mode);
+ case Sparse_layersPackage.EMBEDDING_BAG__INCLUDE_LAST_OFFSET:
+ return include_last_offset != INCLUDE_LAST_OFFSET_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (mode: "); //$NON-NLS-1$
+ result.append(mode);
+ result.append(", include_last_offset: "); //$NON-NLS-1$
+ result.append(include_last_offset);
+ result.append(')');
+ return result.toString();
+ }
+
+} //EmbeddingBagImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/EmbeddingImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/EmbeddingImpl.java
new file mode 100644
index 0000000..2373be9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/EmbeddingImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Embedding;
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Embedding</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.EmbeddingImpl#getPadding_idx <em>Padding idx</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class EmbeddingImpl extends Sparse_layersImpl implements Embedding {
+ /**
+ * The default value of the '{@link #getPadding_idx() <em>Padding idx</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPadding_idx()
+ * @generated
+ * @ordered
+ */
+ protected static final int PADDING_IDX_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getPadding_idx() <em>Padding idx</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPadding_idx()
+ * @generated
+ * @ordered
+ */
+ protected int padding_idx = PADDING_IDX_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EmbeddingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Sparse_layersPackage.Literals.EMBEDDING;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getPadding_idx() {
+ return padding_idx;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setPadding_idx(int newPadding_idx) {
+ int oldPadding_idx = padding_idx;
+ padding_idx = newPadding_idx;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Sparse_layersPackage.EMBEDDING__PADDING_IDX, oldPadding_idx, padding_idx));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Sparse_layersPackage.EMBEDDING__PADDING_IDX:
+ return getPadding_idx();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Sparse_layersPackage.EMBEDDING__PADDING_IDX:
+ setPadding_idx((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Sparse_layersPackage.EMBEDDING__PADDING_IDX:
+ setPadding_idx(PADDING_IDX_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Sparse_layersPackage.EMBEDDING__PADDING_IDX:
+ return padding_idx != PADDING_IDX_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (padding_idx: "); //$NON-NLS-1$
+ result.append(padding_idx);
+ result.append(')');
+ return result.toString();
+ }
+
+} //EmbeddingImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/Sparse_layersFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/Sparse_layersFactoryImpl.java
new file mode 100644
index 0000000..2c97e01
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/Sparse_layersFactoryImpl.java
@@ -0,0 +1,118 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Sparse_layersFactoryImpl extends EFactoryImpl implements Sparse_layersFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Sparse_layersFactory init() {
+ try {
+ Sparse_layersFactory theSparse_layersFactory = (Sparse_layersFactory)EPackage.Registry.INSTANCE.getEFactory(Sparse_layersPackage.eNS_URI);
+ if (theSparse_layersFactory != null) {
+ return theSparse_layersFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Sparse_layersFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sparse_layersFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Sparse_layersPackage.EMBEDDING: return createEmbedding();
+ case Sparse_layersPackage.EMBEDDING_BAG: return createEmbeddingBag();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Embedding createEmbedding() {
+ EmbeddingImpl embedding = new EmbeddingImpl();
+ return embedding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EmbeddingBag createEmbeddingBag() {
+ EmbeddingBagImpl embeddingBag = new EmbeddingBagImpl();
+ return embeddingBag;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Sparse_layersPackage getSparse_layersPackage() {
+ return (Sparse_layersPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Sparse_layersPackage getPackage() {
+ return Sparse_layersPackage.eINSTANCE;
+ }
+
+} //Sparse_layersFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/Sparse_layersImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/Sparse_layersImpl.java
new file mode 100644
index 0000000..1a9214a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/Sparse_layersImpl.java
@@ -0,0 +1,453 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sparse layers</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersImpl#getNum_embeddings <em>Num embeddings</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersImpl#getEmbedding_dim <em>Embedding dim</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersImpl#getMax_norm <em>Max norm</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersImpl#getNorm_type <em>Norm type</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersImpl#isSparse <em>Sparse</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersImpl#isScale_grad_by_freq <em>Scale grad by freq</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Sparse_layersImpl extends ModelImpl implements Sparse_layers {
+ /**
+ * The default value of the '{@link #getNum_embeddings() <em>Num embeddings</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_embeddings()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUM_EMBEDDINGS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNum_embeddings() <em>Num embeddings</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_embeddings()
+ * @generated
+ * @ordered
+ */
+ protected int num_embeddings = NUM_EMBEDDINGS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getEmbedding_dim() <em>Embedding dim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEmbedding_dim()
+ * @generated
+ * @ordered
+ */
+ protected static final int EMBEDDING_DIM_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getEmbedding_dim() <em>Embedding dim</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEmbedding_dim()
+ * @generated
+ * @ordered
+ */
+ protected int embedding_dim = EMBEDDING_DIM_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getMax_norm() <em>Max norm</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMax_norm()
+ * @generated
+ * @ordered
+ */
+ protected static final double MAX_NORM_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getMax_norm() <em>Max norm</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMax_norm()
+ * @generated
+ * @ordered
+ */
+ protected double max_norm = MAX_NORM_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNorm_type() <em>Norm type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNorm_type()
+ * @generated
+ * @ordered
+ */
+ protected static final double NORM_TYPE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getNorm_type() <em>Norm type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNorm_type()
+ * @generated
+ * @ordered
+ */
+ protected double norm_type = NORM_TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isSparse() <em>Sparse</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSparse()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SPARSE_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isSparse() <em>Sparse</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSparse()
+ * @generated
+ * @ordered
+ */
+ protected boolean sparse = SPARSE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isScale_grad_by_freq() <em>Scale grad by freq</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isScale_grad_by_freq()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SCALE_GRAD_BY_FREQ_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isScale_grad_by_freq() <em>Scale grad by freq</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isScale_grad_by_freq()
+ * @generated
+ * @ordered
+ */
+ protected boolean scale_grad_by_freq = SCALE_GRAD_BY_FREQ_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Sparse_layersImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Sparse_layersPackage.Literals.SPARSE_LAYERS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getNum_embeddings() {
+ return num_embeddings;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNum_embeddings(int newNum_embeddings) {
+ int oldNum_embeddings = num_embeddings;
+ num_embeddings = newNum_embeddings;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Sparse_layersPackage.SPARSE_LAYERS__NUM_EMBEDDINGS, oldNum_embeddings, num_embeddings));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getEmbedding_dim() {
+ return embedding_dim;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setEmbedding_dim(int newEmbedding_dim) {
+ int oldEmbedding_dim = embedding_dim;
+ embedding_dim = newEmbedding_dim;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Sparse_layersPackage.SPARSE_LAYERS__EMBEDDING_DIM, oldEmbedding_dim, embedding_dim));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getMax_norm() {
+ return max_norm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMax_norm(double newMax_norm) {
+ double oldMax_norm = max_norm;
+ max_norm = newMax_norm;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Sparse_layersPackage.SPARSE_LAYERS__MAX_NORM, oldMax_norm, max_norm));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getNorm_type() {
+ return norm_type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNorm_type(double newNorm_type) {
+ double oldNorm_type = norm_type;
+ norm_type = newNorm_type;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Sparse_layersPackage.SPARSE_LAYERS__NORM_TYPE, oldNorm_type, norm_type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isSparse() {
+ return sparse;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setSparse(boolean newSparse) {
+ boolean oldSparse = sparse;
+ sparse = newSparse;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Sparse_layersPackage.SPARSE_LAYERS__SPARSE, oldSparse, sparse));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isScale_grad_by_freq() {
+ return scale_grad_by_freq;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setScale_grad_by_freq(boolean newScale_grad_by_freq) {
+ boolean oldScale_grad_by_freq = scale_grad_by_freq;
+ scale_grad_by_freq = newScale_grad_by_freq;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Sparse_layersPackage.SPARSE_LAYERS__SCALE_GRAD_BY_FREQ, oldScale_grad_by_freq, scale_grad_by_freq));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Sparse_layersPackage.SPARSE_LAYERS__NUM_EMBEDDINGS:
+ return getNum_embeddings();
+ case Sparse_layersPackage.SPARSE_LAYERS__EMBEDDING_DIM:
+ return getEmbedding_dim();
+ case Sparse_layersPackage.SPARSE_LAYERS__MAX_NORM:
+ return getMax_norm();
+ case Sparse_layersPackage.SPARSE_LAYERS__NORM_TYPE:
+ return getNorm_type();
+ case Sparse_layersPackage.SPARSE_LAYERS__SPARSE:
+ return isSparse();
+ case Sparse_layersPackage.SPARSE_LAYERS__SCALE_GRAD_BY_FREQ:
+ return isScale_grad_by_freq();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Sparse_layersPackage.SPARSE_LAYERS__NUM_EMBEDDINGS:
+ setNum_embeddings((Integer)newValue);
+ return;
+ case Sparse_layersPackage.SPARSE_LAYERS__EMBEDDING_DIM:
+ setEmbedding_dim((Integer)newValue);
+ return;
+ case Sparse_layersPackage.SPARSE_LAYERS__MAX_NORM:
+ setMax_norm((Double)newValue);
+ return;
+ case Sparse_layersPackage.SPARSE_LAYERS__NORM_TYPE:
+ setNorm_type((Double)newValue);
+ return;
+ case Sparse_layersPackage.SPARSE_LAYERS__SPARSE:
+ setSparse((Boolean)newValue);
+ return;
+ case Sparse_layersPackage.SPARSE_LAYERS__SCALE_GRAD_BY_FREQ:
+ setScale_grad_by_freq((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Sparse_layersPackage.SPARSE_LAYERS__NUM_EMBEDDINGS:
+ setNum_embeddings(NUM_EMBEDDINGS_EDEFAULT);
+ return;
+ case Sparse_layersPackage.SPARSE_LAYERS__EMBEDDING_DIM:
+ setEmbedding_dim(EMBEDDING_DIM_EDEFAULT);
+ return;
+ case Sparse_layersPackage.SPARSE_LAYERS__MAX_NORM:
+ setMax_norm(MAX_NORM_EDEFAULT);
+ return;
+ case Sparse_layersPackage.SPARSE_LAYERS__NORM_TYPE:
+ setNorm_type(NORM_TYPE_EDEFAULT);
+ return;
+ case Sparse_layersPackage.SPARSE_LAYERS__SPARSE:
+ setSparse(SPARSE_EDEFAULT);
+ return;
+ case Sparse_layersPackage.SPARSE_LAYERS__SCALE_GRAD_BY_FREQ:
+ setScale_grad_by_freq(SCALE_GRAD_BY_FREQ_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Sparse_layersPackage.SPARSE_LAYERS__NUM_EMBEDDINGS:
+ return num_embeddings != NUM_EMBEDDINGS_EDEFAULT;
+ case Sparse_layersPackage.SPARSE_LAYERS__EMBEDDING_DIM:
+ return embedding_dim != EMBEDDING_DIM_EDEFAULT;
+ case Sparse_layersPackage.SPARSE_LAYERS__MAX_NORM:
+ return max_norm != MAX_NORM_EDEFAULT;
+ case Sparse_layersPackage.SPARSE_LAYERS__NORM_TYPE:
+ return norm_type != NORM_TYPE_EDEFAULT;
+ case Sparse_layersPackage.SPARSE_LAYERS__SPARSE:
+ return sparse != SPARSE_EDEFAULT;
+ case Sparse_layersPackage.SPARSE_LAYERS__SCALE_GRAD_BY_FREQ:
+ return scale_grad_by_freq != SCALE_GRAD_BY_FREQ_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (num_embeddings: "); //$NON-NLS-1$
+ result.append(num_embeddings);
+ result.append(", embedding_dim: "); //$NON-NLS-1$
+ result.append(embedding_dim);
+ result.append(", max_norm: "); //$NON-NLS-1$
+ result.append(max_norm);
+ result.append(", norm_type: "); //$NON-NLS-1$
+ result.append(norm_type);
+ result.append(", sparse: "); //$NON-NLS-1$
+ result.append(sparse);
+ result.append(", scale_grad_by_freq: "); //$NON-NLS-1$
+ result.append(scale_grad_by_freq);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Sparse_layersImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/Sparse_layersPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/Sparse_layersPackageImpl.java
new file mode 100644
index 0000000..04fd193
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/impl/Sparse_layersPackageImpl.java
@@ -0,0 +1,533 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Embedding;
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.EmbeddingBag;
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Sparse_layersPackageImpl extends EPackageImpl implements Sparse_layersPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sparse_layersEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass embeddingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass embeddingBagEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Sparse_layersPackageImpl() {
+ super(eNS_URI, Sparse_layersFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Sparse_layersPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Sparse_layersPackage init() {
+ if (isInited) return (Sparse_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredSparse_layersPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = registeredSparse_layersPackage instanceof Sparse_layersPackageImpl ? (Sparse_layersPackageImpl)registeredSparse_layersPackage : new Sparse_layersPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theSparse_layersPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theSparse_layersPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theSparse_layersPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Sparse_layersPackage.eNS_URI, theSparse_layersPackage);
+ return theSparse_layersPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSparse_layers() {
+ return sparse_layersEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSparse_layers_Num_embeddings() {
+ return (EAttribute)sparse_layersEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSparse_layers_Embedding_dim() {
+ return (EAttribute)sparse_layersEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSparse_layers_Max_norm() {
+ return (EAttribute)sparse_layersEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSparse_layers_Norm_type() {
+ return (EAttribute)sparse_layersEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSparse_layers_Sparse() {
+ return (EAttribute)sparse_layersEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getSparse_layers_Scale_grad_by_freq() {
+ return (EAttribute)sparse_layersEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getEmbedding() {
+ return embeddingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getEmbedding_Padding_idx() {
+ return (EAttribute)embeddingEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getEmbeddingBag() {
+ return embeddingBagEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getEmbeddingBag_Mode() {
+ return (EAttribute)embeddingBagEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getEmbeddingBag_Include_last_offset() {
+ return (EAttribute)embeddingBagEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Sparse_layersFactory getSparse_layersFactory() {
+ return (Sparse_layersFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ sparse_layersEClass = createEClass(SPARSE_LAYERS);
+ createEAttribute(sparse_layersEClass, SPARSE_LAYERS__NUM_EMBEDDINGS);
+ createEAttribute(sparse_layersEClass, SPARSE_LAYERS__EMBEDDING_DIM);
+ createEAttribute(sparse_layersEClass, SPARSE_LAYERS__MAX_NORM);
+ createEAttribute(sparse_layersEClass, SPARSE_LAYERS__NORM_TYPE);
+ createEAttribute(sparse_layersEClass, SPARSE_LAYERS__SPARSE);
+ createEAttribute(sparse_layersEClass, SPARSE_LAYERS__SCALE_GRAD_BY_FREQ);
+
+ embeddingEClass = createEClass(EMBEDDING);
+ createEAttribute(embeddingEClass, EMBEDDING__PADDING_IDX);
+
+ embeddingBagEClass = createEClass(EMBEDDING_BAG);
+ createEAttribute(embeddingBagEClass, EMBEDDING_BAG__MODE);
+ createEAttribute(embeddingBagEClass, EMBEDDING_BAG__INCLUDE_LAST_OFFSET);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ sparse_layersEClass.getESuperTypes().add(theModulePackage.getModel());
+ embeddingEClass.getESuperTypes().add(this.getSparse_layers());
+ embeddingBagEClass.getESuperTypes().add(this.getSparse_layers());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(sparse_layersEClass, Sparse_layers.class, "Sparse_layers", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getSparse_layers_Num_embeddings(), theTypesPackage.getInteger(), "num_embeddings", null, 1, 1, Sparse_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getSparse_layers_Embedding_dim(), theTypesPackage.getInteger(), "embedding_dim", null, 1, 1, Sparse_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getSparse_layers_Max_norm(), theTypesPackage.getReal(), "max_norm", null, 0, 1, Sparse_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getSparse_layers_Norm_type(), theTypesPackage.getReal(), "norm_type", null, 0, 1, Sparse_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getSparse_layers_Sparse(), theTypesPackage.getBoolean(), "sparse", null, 0, 1, Sparse_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getSparse_layers_Scale_grad_by_freq(), theTypesPackage.getBoolean(), "scale_grad_by_freq", null, 0, 1, Sparse_layers.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(embeddingEClass, Embedding.class, "Embedding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getEmbedding_Padding_idx(), theTypesPackage.getInteger(), "padding_idx", null, 0, 1, Embedding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(embeddingBagEClass, EmbeddingBag.class, "EmbeddingBag", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getEmbeddingBag_Mode(), theTypesPackage.getString(), "mode", null, 0, 1, EmbeddingBag.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getEmbeddingBag_Include_last_offset(), theTypesPackage.getBoolean(), "include_last_offset", null, 0, 1, EmbeddingBag.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ // Create annotations
+ // http://www.eclipse.org/uml2/2.0.0/UML
+ createUMLAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/uml2/2.0.0/UML</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createUMLAnnotations() {
+ String source = "http://www.eclipse.org/uml2/2.0.0/UML"; //$NON-NLS-1$
+ addAnnotation
+ (getSparse_layers_Norm_type(),
+ source,
+ new String[] {
+ "originalName", "norm_type " //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ }
+
+} //Sparse_layersPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/util/Sparse_layersAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/util/Sparse_layersAdapterFactory.java
new file mode 100644
index 0000000..3bc0fc2
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/util/Sparse_layersAdapterFactory.java
@@ -0,0 +1,183 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage
+ * @generated
+ */
+public class Sparse_layersAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Sparse_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sparse_layersAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Sparse_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Sparse_layersSwitch<Adapter> modelSwitch =
+ new Sparse_layersSwitch<Adapter>() {
+ @Override
+ public Adapter caseSparse_layers(Sparse_layers object) {
+ return createSparse_layersAdapter();
+ }
+ @Override
+ public Adapter caseEmbedding(Embedding object) {
+ return createEmbeddingAdapter();
+ }
+ @Override
+ public Adapter caseEmbeddingBag(EmbeddingBag object) {
+ return createEmbeddingBagAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers <em>Sparse layers</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layers
+ * @generated
+ */
+ public Adapter createSparse_layersAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Embedding <em>Embedding</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Embedding
+ * @generated
+ */
+ public Adapter createEmbeddingAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.EmbeddingBag <em>Embedding Bag</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.EmbeddingBag
+ * @generated
+ */
+ public Adapter createEmbeddingBagAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Sparse_layersAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/util/Sparse_layersSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/util/Sparse_layersSwitch.java
new file mode 100644
index 0000000..0b64cd1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Sparse_layers/util/Sparse_layersSwitch.java
@@ -0,0 +1,181 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage
+ * @generated
+ */
+public class Sparse_layersSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Sparse_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Sparse_layersSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Sparse_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Sparse_layersPackage.SPARSE_LAYERS: {
+ Sparse_layers sparse_layers = (Sparse_layers)theEObject;
+ T result = caseSparse_layers(sparse_layers);
+ if (result == null) result = caseModel(sparse_layers);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Sparse_layersPackage.EMBEDDING: {
+ Embedding embedding = (Embedding)theEObject;
+ T result = caseEmbedding(embedding);
+ if (result == null) result = caseSparse_layers(embedding);
+ if (result == null) result = caseModel(embedding);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Sparse_layersPackage.EMBEDDING_BAG: {
+ EmbeddingBag embeddingBag = (EmbeddingBag)theEObject;
+ T result = caseEmbeddingBag(embeddingBag);
+ if (result == null) result = caseSparse_layers(embeddingBag);
+ if (result == null) result = caseModel(embeddingBag);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Sparse layers</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Sparse layers</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSparse_layers(Sparse_layers object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Embedding</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Embedding</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEmbedding(Embedding object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Embedding Bag</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Embedding Bag</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEmbeddingBag(EmbeddingBag object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Sparse_layersSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/EDType.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/EDType.java
new file mode 100644
index 0000000..258a56a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/EDType.java
@@ -0,0 +1,379 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Tensor;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>ED Type</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage#getEDType()
+ * @model
+ * @generated
+ */
+public enum EDType implements Enumerator {
+ /**
+ * The '<em><b>Float32</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FLOAT32_VALUE
+ * @generated
+ * @ordered
+ */
+ FLOAT32(0, "float32", "float32"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Float64</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FLOAT64_VALUE
+ * @generated
+ * @ordered
+ */
+ FLOAT64(1, "float64", "float64"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Float16</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FLOAT16_VALUE
+ * @generated
+ * @ordered
+ */
+ FLOAT16(2, "float16", "float16"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Uint8</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UINT8_VALUE
+ * @generated
+ * @ordered
+ */
+ UINT8(3, "uint8", "uint8"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Int8</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INT8_VALUE
+ * @generated
+ * @ordered
+ */
+ INT8(4, "int8", "int8"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Int16</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INT16_VALUE
+ * @generated
+ * @ordered
+ */
+ INT16(5, "int16", "int16"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Int32</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INT32_VALUE
+ * @generated
+ * @ordered
+ */
+ INT32(6, "int32", "int32"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Int64</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INT64_VALUE
+ * @generated
+ * @ordered
+ */
+ INT64(7, "int64", "int64"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Bool</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BOOL_VALUE
+ * @generated
+ * @ordered
+ */
+ BOOL(8, "bool", "bool"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Float32</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FLOAT32
+ * @model name="float32"
+ * @generated
+ * @ordered
+ */
+ public static final int FLOAT32_VALUE = 0;
+
+ /**
+ * The '<em><b>Float64</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FLOAT64
+ * @model name="float64"
+ * @generated
+ * @ordered
+ */
+ public static final int FLOAT64_VALUE = 1;
+
+ /**
+ * The '<em><b>Float16</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FLOAT16
+ * @model name="float16"
+ * @generated
+ * @ordered
+ */
+ public static final int FLOAT16_VALUE = 2;
+
+ /**
+ * The '<em><b>Uint8</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #UINT8
+ * @model name="uint8"
+ * @generated
+ * @ordered
+ */
+ public static final int UINT8_VALUE = 3;
+
+ /**
+ * The '<em><b>Int8</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INT8
+ * @model name="int8"
+ * @generated
+ * @ordered
+ */
+ public static final int INT8_VALUE = 4;
+
+ /**
+ * The '<em><b>Int16</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INT16
+ * @model name="int16"
+ * @generated
+ * @ordered
+ */
+ public static final int INT16_VALUE = 5;
+
+ /**
+ * The '<em><b>Int32</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INT32
+ * @model name="int32"
+ * @generated
+ * @ordered
+ */
+ public static final int INT32_VALUE = 6;
+
+ /**
+ * The '<em><b>Int64</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INT64
+ * @model name="int64"
+ * @generated
+ * @ordered
+ */
+ public static final int INT64_VALUE = 7;
+
+ /**
+ * The '<em><b>Bool</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BOOL
+ * @model name="bool"
+ * @generated
+ * @ordered
+ */
+ public static final int BOOL_VALUE = 8;
+
+ /**
+ * An array of all the '<em><b>ED Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final EDType[] VALUES_ARRAY =
+ new EDType[] {
+ FLOAT32,
+ FLOAT64,
+ FLOAT16,
+ UINT8,
+ INT8,
+ INT16,
+ INT32,
+ INT64,
+ BOOL,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>ED Type</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<EDType> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>ED Type</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static EDType get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ EDType result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>ED Type</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static EDType getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ EDType result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>ED Type</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static EDType get(int value) {
+ switch (value) {
+ case FLOAT32_VALUE: return FLOAT32;
+ case FLOAT64_VALUE: return FLOAT64;
+ case FLOAT16_VALUE: return FLOAT16;
+ case UINT8_VALUE: return UINT8;
+ case INT8_VALUE: return INT8;
+ case INT16_VALUE: return INT16;
+ case INT32_VALUE: return INT32;
+ case INT64_VALUE: return INT64;
+ case BOOL_VALUE: return BOOL;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDType(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //EDType
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/ETensorTypes.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/ETensorTypes.java
new file mode 100644
index 0000000..8288664
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/ETensorTypes.java
@@ -0,0 +1,379 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Tensor;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>ETensor Types</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage#getETensorTypes()
+ * @model
+ * @generated
+ */
+public enum ETensorTypes implements Enumerator {
+ /**
+ * The '<em><b>Float Tensor</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FLOAT_TENSOR_VALUE
+ * @generated
+ * @ordered
+ */
+ FLOAT_TENSOR(0, "FloatTensor", "FloatTensor"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Double Tensor</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DOUBLE_TENSOR_VALUE
+ * @generated
+ * @ordered
+ */
+ DOUBLE_TENSOR(1, "DoubleTensor", "DoubleTensor"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Half Tensor</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HALF_TENSOR_VALUE
+ * @generated
+ * @ordered
+ */
+ HALF_TENSOR(2, "HalfTensor", "HalfTensor"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Byte Tensor</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BYTE_TENSOR_VALUE
+ * @generated
+ * @ordered
+ */
+ BYTE_TENSOR(3, "ByteTensor", "ByteTensor"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Char Tensor</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CHAR_TENSOR_VALUE
+ * @generated
+ * @ordered
+ */
+ CHAR_TENSOR(4, "CharTensor", "CharTensor"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Short Tensor</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SHORT_TENSOR_VALUE
+ * @generated
+ * @ordered
+ */
+ SHORT_TENSOR(5, "ShortTensor", "ShortTensor"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Int Tensor</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INT_TENSOR_VALUE
+ * @generated
+ * @ordered
+ */
+ INT_TENSOR(6, "IntTensor", "IntTensor"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Long Tensor</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LONG_TENSOR_VALUE
+ * @generated
+ * @ordered
+ */
+ LONG_TENSOR(7, "LongTensor", "LongTensor"), //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Bool Tensor</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BOOL_TENSOR_VALUE
+ * @generated
+ * @ordered
+ */
+ BOOL_TENSOR(8, "BoolTensor", "BoolTensor"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ /**
+ * The '<em><b>Float Tensor</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #FLOAT_TENSOR
+ * @model name="FloatTensor"
+ * @generated
+ * @ordered
+ */
+ public static final int FLOAT_TENSOR_VALUE = 0;
+
+ /**
+ * The '<em><b>Double Tensor</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #DOUBLE_TENSOR
+ * @model name="DoubleTensor"
+ * @generated
+ * @ordered
+ */
+ public static final int DOUBLE_TENSOR_VALUE = 1;
+
+ /**
+ * The '<em><b>Half Tensor</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #HALF_TENSOR
+ * @model name="HalfTensor"
+ * @generated
+ * @ordered
+ */
+ public static final int HALF_TENSOR_VALUE = 2;
+
+ /**
+ * The '<em><b>Byte Tensor</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BYTE_TENSOR
+ * @model name="ByteTensor"
+ * @generated
+ * @ordered
+ */
+ public static final int BYTE_TENSOR_VALUE = 3;
+
+ /**
+ * The '<em><b>Char Tensor</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CHAR_TENSOR
+ * @model name="CharTensor"
+ * @generated
+ * @ordered
+ */
+ public static final int CHAR_TENSOR_VALUE = 4;
+
+ /**
+ * The '<em><b>Short Tensor</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #SHORT_TENSOR
+ * @model name="ShortTensor"
+ * @generated
+ * @ordered
+ */
+ public static final int SHORT_TENSOR_VALUE = 5;
+
+ /**
+ * The '<em><b>Int Tensor</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #INT_TENSOR
+ * @model name="IntTensor"
+ * @generated
+ * @ordered
+ */
+ public static final int INT_TENSOR_VALUE = 6;
+
+ /**
+ * The '<em><b>Long Tensor</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #LONG_TENSOR
+ * @model name="LongTensor"
+ * @generated
+ * @ordered
+ */
+ public static final int LONG_TENSOR_VALUE = 7;
+
+ /**
+ * The '<em><b>Bool Tensor</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BOOL_TENSOR
+ * @model name="BoolTensor"
+ * @generated
+ * @ordered
+ */
+ public static final int BOOL_TENSOR_VALUE = 8;
+
+ /**
+ * An array of all the '<em><b>ETensor Types</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final ETensorTypes[] VALUES_ARRAY =
+ new ETensorTypes[] {
+ FLOAT_TENSOR,
+ DOUBLE_TENSOR,
+ HALF_TENSOR,
+ BYTE_TENSOR,
+ CHAR_TENSOR,
+ SHORT_TENSOR,
+ INT_TENSOR,
+ LONG_TENSOR,
+ BOOL_TENSOR,
+ };
+
+ /**
+ * A public read-only list of all the '<em><b>ETensor Types</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<ETensorTypes> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>ETensor Types</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param literal the literal.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ETensorTypes get(String literal) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ETensorTypes result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>ETensor Types</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param name the name.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ETensorTypes getByName(String name) {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+ ETensorTypes result = VALUES_ARRAY[i];
+ if (result.getName().equals(name)) {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>ETensor Types</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the integer value.
+ * @return the matching enumerator or <code>null</code>.
+ * @generated
+ */
+ public static ETensorTypes get(int value) {
+ switch (value) {
+ case FLOAT_TENSOR_VALUE: return FLOAT_TENSOR;
+ case DOUBLE_TENSOR_VALUE: return DOUBLE_TENSOR;
+ case HALF_TENSOR_VALUE: return HALF_TENSOR;
+ case BYTE_TENSOR_VALUE: return BYTE_TENSOR;
+ case CHAR_TENSOR_VALUE: return CHAR_TENSOR;
+ case SHORT_TENSOR_VALUE: return SHORT_TENSOR;
+ case INT_TENSOR_VALUE: return INT_TENSOR;
+ case LONG_TENSOR_VALUE: return LONG_TENSOR;
+ case BOOL_TENSOR_VALUE: return BOOL_TENSOR;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private ETensorTypes(int value, String name, String literal) {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getLiteral() {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return literal;
+ }
+
+} //ETensorTypes
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/Tensor.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/Tensor.java
new file mode 100644
index 0000000..346a561
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/Tensor.java
@@ -0,0 +1,235 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Tensor;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.Device;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Tensor</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getData <em>Data</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getDtype <em>Dtype</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getDevice <em>Device</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#isRequires_grad <em>Requires grad</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#isPin_memory <em>Pin memory</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getShape <em>Shape</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage#getTensor()
+ * @model
+ * @generated
+ */
+public interface Tensor extends EObject {
+ /**
+ * Returns the value of the '<em><b>Data</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Double}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Data</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Data</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage#getTensor_Data()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ EList<Double> getData();
+
+ /**
+ * Returns the value of the '<em><b>Dtype</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.EDType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dtype</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dtype</em>' attribute.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.EDType
+ * @see #setDtype(EDType)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage#getTensor_Dtype()
+ * @model ordered="false"
+ * @generated
+ */
+ EDType getDtype();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getDtype <em>Dtype</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dtype</em>' attribute.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.EDType
+ * @see #getDtype()
+ * @generated
+ */
+ void setDtype(EDType value);
+
+ /**
+ * Returns the value of the '<em><b>Device</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Device</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Device</em>' reference.
+ * @see #setDevice(Device)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage#getTensor_Device()
+ * @model ordered="false"
+ * @generated
+ */
+ Device getDevice();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getDevice <em>Device</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Device</em>' reference.
+ * @see #getDevice()
+ * @generated
+ */
+ void setDevice(Device value);
+
+ /**
+ * Returns the value of the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Requires grad</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Requires grad</em>' attribute.
+ * @see #setRequires_grad(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage#getTensor_Requires_grad()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isRequires_grad();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#isRequires_grad <em>Requires grad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Requires grad</em>' attribute.
+ * @see #isRequires_grad()
+ * @generated
+ */
+ void setRequires_grad(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Pin memory</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pin memory</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pin memory</em>' attribute.
+ * @see #setPin_memory(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage#getTensor_Pin_memory()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isPin_memory();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#isPin_memory <em>Pin memory</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pin memory</em>' attribute.
+ * @see #isPin_memory()
+ * @generated
+ */
+ void setPin_memory(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Shape</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Shape</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Shape</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage#getTensor_Shape()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getShape();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage#getTensor_Name()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Base Class</em>' reference.
+ * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage#getTensor_Base_Class()
+ * @model ordered="false"
+ * @generated
+ */
+ org.eclipse.uml2.uml.Class getBase_Class();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getBase_Class <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Base Class</em>' reference.
+ * @see #getBase_Class()
+ * @generated
+ */
+ void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // Tensor
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/TensorFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/TensorFactory.java
new file mode 100644
index 0000000..d7e310b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/TensorFactory.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Tensor;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage
+ * @generated
+ */
+public interface TensorFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ TensorFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Tensor</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tensor</em>'.
+ * @generated
+ */
+ Tensor createTensor();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ TensorPackage getTensorPackage();
+
+} //TensorFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/TensorPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/TensorPackage.java
new file mode 100644
index 0000000..f472fdc
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/TensorPackage.java
@@ -0,0 +1,427 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Tensor;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface TensorPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Tensor"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/tensor/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Tensor"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ TensorPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorImpl <em>Tensor</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl#getTensor()
+ * @generated
+ */
+ int TENSOR = 0;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TENSOR__DATA = 0;
+
+ /**
+ * The feature id for the '<em><b>Dtype</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TENSOR__DTYPE = 1;
+
+ /**
+ * The feature id for the '<em><b>Device</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TENSOR__DEVICE = 2;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TENSOR__REQUIRES_GRAD = 3;
+
+ /**
+ * The feature id for the '<em><b>Pin memory</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TENSOR__PIN_MEMORY = 4;
+
+ /**
+ * The feature id for the '<em><b>Shape</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TENSOR__SHAPE = 5;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TENSOR__NAME = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TENSOR__BASE_CLASS = 7;
+
+ /**
+ * The number of structural features of the '<em>Tensor</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TENSOR_FEATURE_COUNT = 8;
+
+ /**
+ * The number of operations of the '<em>Tensor</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TENSOR_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.EDType <em>ED Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.EDType
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl#getEDType()
+ * @generated
+ */
+ int ED_TYPE = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.ETensorTypes <em>ETensor Types</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.ETensorTypes
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl#getETensorTypes()
+ * @generated
+ */
+ int ETENSOR_TYPES = 2;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor <em>Tensor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tensor</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor
+ * @generated
+ */
+ EClass getTensor();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getData <em>Data</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Data</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getData()
+ * @see #getTensor()
+ * @generated
+ */
+ EAttribute getTensor_Data();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getDtype <em>Dtype</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dtype</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getDtype()
+ * @see #getTensor()
+ * @generated
+ */
+ EAttribute getTensor_Dtype();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getDevice <em>Device</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Device</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getDevice()
+ * @see #getTensor()
+ * @generated
+ */
+ EReference getTensor_Device();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#isRequires_grad <em>Requires grad</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Requires grad</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#isRequires_grad()
+ * @see #getTensor()
+ * @generated
+ */
+ EAttribute getTensor_Requires_grad();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#isPin_memory <em>Pin memory</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Pin memory</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#isPin_memory()
+ * @see #getTensor()
+ * @generated
+ */
+ EAttribute getTensor_Pin_memory();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getShape <em>Shape</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Shape</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getShape()
+ * @see #getTensor()
+ * @generated
+ */
+ EAttribute getTensor_Shape();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getName()
+ * @see #getTensor()
+ * @generated
+ */
+ EAttribute getTensor_Name();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getBase_Class <em>Base Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Base Class</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor#getBase_Class()
+ * @see #getTensor()
+ * @generated
+ */
+ EReference getTensor_Base_Class();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.EDType <em>ED Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>ED Type</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.EDType
+ * @generated
+ */
+ EEnum getEDType();
+
+ /**
+ * Returns the meta object for enum '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.ETensorTypes <em>ETensor Types</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for enum '<em>ETensor Types</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.ETensorTypes
+ * @generated
+ */
+ EEnum getETensorTypes();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ TensorFactory getTensorFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorImpl <em>Tensor</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl#getTensor()
+ * @generated
+ */
+ EClass TENSOR = eINSTANCE.getTensor();
+
+ /**
+ * The meta object literal for the '<em><b>Data</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TENSOR__DATA = eINSTANCE.getTensor_Data();
+
+ /**
+ * The meta object literal for the '<em><b>Dtype</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TENSOR__DTYPE = eINSTANCE.getTensor_Dtype();
+
+ /**
+ * The meta object literal for the '<em><b>Device</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TENSOR__DEVICE = eINSTANCE.getTensor_Device();
+
+ /**
+ * The meta object literal for the '<em><b>Requires grad</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TENSOR__REQUIRES_GRAD = eINSTANCE.getTensor_Requires_grad();
+
+ /**
+ * The meta object literal for the '<em><b>Pin memory</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TENSOR__PIN_MEMORY = eINSTANCE.getTensor_Pin_memory();
+
+ /**
+ * The meta object literal for the '<em><b>Shape</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TENSOR__SHAPE = eINSTANCE.getTensor_Shape();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TENSOR__NAME = eINSTANCE.getTensor_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TENSOR__BASE_CLASS = eINSTANCE.getTensor_Base_Class();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.EDType <em>ED Type</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.EDType
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl#getEDType()
+ * @generated
+ */
+ EEnum ED_TYPE = eINSTANCE.getEDType();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.ETensorTypes <em>ETensor Types</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.ETensorTypes
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl#getETensorTypes()
+ * @generated
+ */
+ EEnum ETENSOR_TYPES = eINSTANCE.getETensorTypes();
+
+ }
+
+} //TensorPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/impl/TensorFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/impl/TensorFactoryImpl.java
new file mode 100644
index 0000000..d6f578e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/impl/TensorFactoryImpl.java
@@ -0,0 +1,181 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TensorFactoryImpl extends EFactoryImpl implements TensorFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static TensorFactory init() {
+ try {
+ TensorFactory theTensorFactory = (TensorFactory)EPackage.Registry.INSTANCE.getEFactory(TensorPackage.eNS_URI);
+ if (theTensorFactory != null) {
+ return theTensorFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new TensorFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TensorFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case TensorPackage.TENSOR: return createTensor();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case TensorPackage.ED_TYPE:
+ return createEDTypeFromString(eDataType, initialValue);
+ case TensorPackage.ETENSOR_TYPES:
+ return createETensorTypesFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case TensorPackage.ED_TYPE:
+ return convertEDTypeToString(eDataType, instanceValue);
+ case TensorPackage.ETENSOR_TYPES:
+ return convertETensorTypesToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Tensor createTensor() {
+ TensorImpl tensor = new TensorImpl();
+ return tensor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDType createEDTypeFromString(EDataType eDataType, String initialValue) {
+ EDType result = EDType.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertEDTypeToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ETensorTypes createETensorTypesFromString(EDataType eDataType, String initialValue) {
+ ETensorTypes result = ETensorTypes.get(initialValue);
+ if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertETensorTypesToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TensorPackage getTensorPackage() {
+ return (TensorPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static TensorPackage getPackage() {
+ return TensorPackage.eINSTANCE;
+ }
+
+} //TensorFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/impl/TensorImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/impl/TensorImpl.java
new file mode 100644
index 0000000..72b4438
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/impl/TensorImpl.java
@@ -0,0 +1,551 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.EDType;
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor;
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.Device;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Tensor</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorImpl#getData <em>Data</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorImpl#getDtype <em>Dtype</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorImpl#getDevice <em>Device</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorImpl#isRequires_grad <em>Requires grad</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorImpl#isPin_memory <em>Pin memory</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorImpl#getShape <em>Shape</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TensorImpl extends MinimalEObjectImpl.Container implements Tensor {
+ /**
+ * The cached value of the '{@link #getData() <em>Data</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getData()
+ * @generated
+ * @ordered
+ */
+ protected EList<Double> data;
+
+ /**
+ * The default value of the '{@link #getDtype() <em>Dtype</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDtype()
+ * @generated
+ * @ordered
+ */
+ protected static final EDType DTYPE_EDEFAULT = EDType.FLOAT32;
+
+ /**
+ * The cached value of the '{@link #getDtype() <em>Dtype</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDtype()
+ * @generated
+ * @ordered
+ */
+ protected EDType dtype = DTYPE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getDevice() <em>Device</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDevice()
+ * @generated
+ * @ordered
+ */
+ protected Device device;
+
+ /**
+ * The default value of the '{@link #isRequires_grad() <em>Requires grad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRequires_grad()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean REQUIRES_GRAD_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isRequires_grad() <em>Requires grad</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRequires_grad()
+ * @generated
+ * @ordered
+ */
+ protected boolean requires_grad = REQUIRES_GRAD_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isPin_memory() <em>Pin memory</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPin_memory()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean PIN_MEMORY_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isPin_memory() <em>Pin memory</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isPin_memory()
+ * @generated
+ * @ordered
+ */
+ protected boolean pin_memory = PIN_MEMORY_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getShape() <em>Shape</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getShape()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> shape;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBase_Class()
+ * @generated
+ * @ordered
+ */
+ protected org.eclipse.uml2.uml.Class base_Class;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TensorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return TensorPackage.Literals.TENSOR;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Double> getData() {
+ if (data == null) {
+ data = new EDataTypeUniqueEList<Double>(Double.class, this, TensorPackage.TENSOR__DATA);
+ }
+ return data;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EDType getDtype() {
+ return dtype;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDtype(EDType newDtype) {
+ EDType oldDtype = dtype;
+ dtype = newDtype == null ? DTYPE_EDEFAULT : newDtype;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TensorPackage.TENSOR__DTYPE, oldDtype, dtype));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Device getDevice() {
+ if (device != null && device.eIsProxy()) {
+ InternalEObject oldDevice = (InternalEObject)device;
+ device = (Device)eResolveProxy(oldDevice);
+ if (device != oldDevice) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, TensorPackage.TENSOR__DEVICE, oldDevice, device));
+ }
+ }
+ return device;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Device basicGetDevice() {
+ return device;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDevice(Device newDevice) {
+ Device oldDevice = device;
+ device = newDevice;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TensorPackage.TENSOR__DEVICE, oldDevice, device));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isRequires_grad() {
+ return requires_grad;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setRequires_grad(boolean newRequires_grad) {
+ boolean oldRequires_grad = requires_grad;
+ requires_grad = newRequires_grad;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TensorPackage.TENSOR__REQUIRES_GRAD, oldRequires_grad, requires_grad));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isPin_memory() {
+ return pin_memory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setPin_memory(boolean newPin_memory) {
+ boolean oldPin_memory = pin_memory;
+ pin_memory = newPin_memory;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TensorPackage.TENSOR__PIN_MEMORY, oldPin_memory, pin_memory));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getShape() {
+ if (shape == null) {
+ shape = new EDataTypeUniqueEList<Integer>(Integer.class, this, TensorPackage.TENSOR__SHAPE);
+ }
+ return shape;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TensorPackage.TENSOR__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public org.eclipse.uml2.uml.Class getBase_Class() {
+ if (base_Class != null && base_Class.eIsProxy()) {
+ InternalEObject oldBase_Class = (InternalEObject)base_Class;
+ base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+ if (base_Class != oldBase_Class) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, TensorPackage.TENSOR__BASE_CLASS, oldBase_Class, base_Class));
+ }
+ }
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+ return base_Class;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+ org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+ base_Class = newBase_Class;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, TensorPackage.TENSOR__BASE_CLASS, oldBase_Class, base_Class));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case TensorPackage.TENSOR__DATA:
+ return getData();
+ case TensorPackage.TENSOR__DTYPE:
+ return getDtype();
+ case TensorPackage.TENSOR__DEVICE:
+ if (resolve) return getDevice();
+ return basicGetDevice();
+ case TensorPackage.TENSOR__REQUIRES_GRAD:
+ return isRequires_grad();
+ case TensorPackage.TENSOR__PIN_MEMORY:
+ return isPin_memory();
+ case TensorPackage.TENSOR__SHAPE:
+ return getShape();
+ case TensorPackage.TENSOR__NAME:
+ return getName();
+ case TensorPackage.TENSOR__BASE_CLASS:
+ if (resolve) return getBase_Class();
+ return basicGetBase_Class();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case TensorPackage.TENSOR__DATA:
+ getData().clear();
+ getData().addAll((Collection<? extends Double>)newValue);
+ return;
+ case TensorPackage.TENSOR__DTYPE:
+ setDtype((EDType)newValue);
+ return;
+ case TensorPackage.TENSOR__DEVICE:
+ setDevice((Device)newValue);
+ return;
+ case TensorPackage.TENSOR__REQUIRES_GRAD:
+ setRequires_grad((Boolean)newValue);
+ return;
+ case TensorPackage.TENSOR__PIN_MEMORY:
+ setPin_memory((Boolean)newValue);
+ return;
+ case TensorPackage.TENSOR__SHAPE:
+ getShape().clear();
+ getShape().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case TensorPackage.TENSOR__NAME:
+ setName((String)newValue);
+ return;
+ case TensorPackage.TENSOR__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case TensorPackage.TENSOR__DATA:
+ getData().clear();
+ return;
+ case TensorPackage.TENSOR__DTYPE:
+ setDtype(DTYPE_EDEFAULT);
+ return;
+ case TensorPackage.TENSOR__DEVICE:
+ setDevice((Device)null);
+ return;
+ case TensorPackage.TENSOR__REQUIRES_GRAD:
+ setRequires_grad(REQUIRES_GRAD_EDEFAULT);
+ return;
+ case TensorPackage.TENSOR__PIN_MEMORY:
+ setPin_memory(PIN_MEMORY_EDEFAULT);
+ return;
+ case TensorPackage.TENSOR__SHAPE:
+ getShape().clear();
+ return;
+ case TensorPackage.TENSOR__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case TensorPackage.TENSOR__BASE_CLASS:
+ setBase_Class((org.eclipse.uml2.uml.Class)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case TensorPackage.TENSOR__DATA:
+ return data != null && !data.isEmpty();
+ case TensorPackage.TENSOR__DTYPE:
+ return dtype != DTYPE_EDEFAULT;
+ case TensorPackage.TENSOR__DEVICE:
+ return device != null;
+ case TensorPackage.TENSOR__REQUIRES_GRAD:
+ return requires_grad != REQUIRES_GRAD_EDEFAULT;
+ case TensorPackage.TENSOR__PIN_MEMORY:
+ return pin_memory != PIN_MEMORY_EDEFAULT;
+ case TensorPackage.TENSOR__SHAPE:
+ return shape != null && !shape.isEmpty();
+ case TensorPackage.TENSOR__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case TensorPackage.TENSOR__BASE_CLASS:
+ return base_Class != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (data: "); //$NON-NLS-1$
+ result.append(data);
+ result.append(", dtype: "); //$NON-NLS-1$
+ result.append(dtype);
+ result.append(", requires_grad: "); //$NON-NLS-1$
+ result.append(requires_grad);
+ result.append(", pin_memory: "); //$NON-NLS-1$
+ result.append(pin_memory);
+ result.append(", shape: "); //$NON-NLS-1$
+ result.append(shape);
+ result.append(", name: "); //$NON-NLS-1$
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //TensorImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/impl/TensorPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/impl/TensorPackageImpl.java
new file mode 100644
index 0000000..a547b5a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/impl/TensorPackageImpl.java
@@ -0,0 +1,520 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.EDType;
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.ETensorTypes;
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor;
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class TensorPackageImpl extends EPackageImpl implements TensorPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass tensorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum edTypeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum eTensorTypesEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private TensorPackageImpl() {
+ super(eNS_URI, TensorFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link TensorPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static TensorPackage init() {
+ if (isInited) return (TensorPackage)EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredTensorPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ TensorPackageImpl theTensorPackage = registeredTensorPackage instanceof TensorPackageImpl ? (TensorPackageImpl)registeredTensorPackage : new TensorPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theTensorPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theTensorPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theTensorPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(TensorPackage.eNS_URI, theTensorPackage);
+ return theTensorPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTensor() {
+ return tensorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTensor_Data() {
+ return (EAttribute)tensorEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTensor_Dtype() {
+ return (EAttribute)tensorEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTensor_Device() {
+ return (EReference)tensorEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTensor_Requires_grad() {
+ return (EAttribute)tensorEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTensor_Pin_memory() {
+ return (EAttribute)tensorEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTensor_Shape() {
+ return (EAttribute)tensorEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTensor_Name() {
+ return (EAttribute)tensorEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTensor_Base_Class() {
+ return (EReference)tensorEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EEnum getEDType() {
+ return edTypeEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EEnum getETensorTypes() {
+ return eTensorTypesEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TensorFactory getTensorFactory() {
+ return (TensorFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ tensorEClass = createEClass(TENSOR);
+ createEAttribute(tensorEClass, TENSOR__DATA);
+ createEAttribute(tensorEClass, TENSOR__DTYPE);
+ createEReference(tensorEClass, TENSOR__DEVICE);
+ createEAttribute(tensorEClass, TENSOR__REQUIRES_GRAD);
+ createEAttribute(tensorEClass, TENSOR__PIN_MEMORY);
+ createEAttribute(tensorEClass, TENSOR__SHAPE);
+ createEAttribute(tensorEClass, TENSOR__NAME);
+ createEReference(tensorEClass, TENSOR__BASE_CLASS);
+
+ // Create enums
+ edTypeEEnum = createEEnum(ED_TYPE);
+ eTensorTypesEEnum = createEEnum(ETENSOR_TYPES);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+ DatatypesPackage theDatatypesPackage = (DatatypesPackage)EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(tensorEClass, Tensor.class, "Tensor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getTensor_Data(), theTypesPackage.getReal(), "data", null, 0, -1, Tensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getTensor_Dtype(), this.getEDType(), "dtype", null, 0, 1, Tensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTensor_Device(), theDatatypesPackage.getDevice(), null, "device", null, 0, 1, Tensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getTensor_Requires_grad(), theTypesPackage.getBoolean(), "requires_grad", null, 0, 1, Tensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getTensor_Pin_memory(), theTypesPackage.getBoolean(), "pin_memory", null, 0, 1, Tensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getTensor_Shape(), theTypesPackage.getInteger(), "shape", null, 0, -1, Tensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getTensor_Name(), theTypesPackage.getString(), "name", null, 0, 1, Tensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTensor_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 0, 1, Tensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ // Initialize enums and add enum literals
+ initEEnum(edTypeEEnum, EDType.class, "EDType"); //$NON-NLS-1$
+ addEEnumLiteral(edTypeEEnum, EDType.FLOAT32);
+ addEEnumLiteral(edTypeEEnum, EDType.FLOAT64);
+ addEEnumLiteral(edTypeEEnum, EDType.FLOAT16);
+ addEEnumLiteral(edTypeEEnum, EDType.UINT8);
+ addEEnumLiteral(edTypeEEnum, EDType.INT8);
+ addEEnumLiteral(edTypeEEnum, EDType.INT16);
+ addEEnumLiteral(edTypeEEnum, EDType.INT32);
+ addEEnumLiteral(edTypeEEnum, EDType.INT64);
+ addEEnumLiteral(edTypeEEnum, EDType.BOOL);
+
+ initEEnum(eTensorTypesEEnum, ETensorTypes.class, "ETensorTypes"); //$NON-NLS-1$
+ addEEnumLiteral(eTensorTypesEEnum, ETensorTypes.FLOAT_TENSOR);
+ addEEnumLiteral(eTensorTypesEEnum, ETensorTypes.DOUBLE_TENSOR);
+ addEEnumLiteral(eTensorTypesEEnum, ETensorTypes.HALF_TENSOR);
+ addEEnumLiteral(eTensorTypesEEnum, ETensorTypes.BYTE_TENSOR);
+ addEEnumLiteral(eTensorTypesEEnum, ETensorTypes.CHAR_TENSOR);
+ addEEnumLiteral(eTensorTypesEEnum, ETensorTypes.SHORT_TENSOR);
+ addEEnumLiteral(eTensorTypesEEnum, ETensorTypes.INT_TENSOR);
+ addEEnumLiteral(eTensorTypesEEnum, ETensorTypes.LONG_TENSOR);
+ addEEnumLiteral(eTensorTypesEEnum, ETensorTypes.BOOL_TENSOR);
+ }
+
+} //TensorPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/util/TensorAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/util/TensorAdapterFactory.java
new file mode 100644
index 0000000..f704ab2
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/util/TensorAdapterFactory.java
@@ -0,0 +1,129 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Tensor.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage
+ * @generated
+ */
+public class TensorAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static TensorPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TensorAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = TensorPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TensorSwitch<Adapter> modelSwitch =
+ new TensorSwitch<Adapter>() {
+ @Override
+ public Adapter caseTensor(Tensor object) {
+ return createTensorAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor <em>Tensor</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.Tensor
+ * @generated
+ */
+ public Adapter createTensorAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //TensorAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/util/TensorSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/util/TensorSwitch.java
new file mode 100644
index 0000000..9430c0b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Tensor/util/TensorSwitch.java
@@ -0,0 +1,119 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Tensor.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage
+ * @generated
+ */
+public class TensorSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static TensorPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TensorSwitch() {
+ if (modelPackage == null) {
+ modelPackage = TensorPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case TensorPackage.TENSOR: {
+ Tensor tensor = (Tensor)theEObject;
+ T result = caseTensor(tensor);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Tensor</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Tensor</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTensor(Tensor object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //TensorSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer.java
new file mode 100644
index 0000000..c24f1c3
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer.java
@@ -0,0 +1,141 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transformer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getNum_encoder_layers <em>Num encoder layers</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getNum_decoder_layers <em>Num decoder layers</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getCustom_encoder <em>Custom encoder</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getCustom_decoder <em>Custom decoder</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer()
+ * @model
+ * @generated
+ */
+public interface Transformer extends Transformer_layers_1 {
+ /**
+ * Returns the value of the '<em><b>Num encoder layers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Num encoder layers</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Num encoder layers</em>' attribute.
+ * @see #setNum_encoder_layers(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer_Num_encoder_layers()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='num_encoder_layers '"
+ * @generated
+ */
+ int getNum_encoder_layers();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getNum_encoder_layers <em>Num encoder layers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Num encoder layers</em>' attribute.
+ * @see #getNum_encoder_layers()
+ * @generated
+ */
+ void setNum_encoder_layers(int value);
+
+ /**
+ * Returns the value of the '<em><b>Num decoder layers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Num decoder layers</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Num decoder layers</em>' attribute.
+ * @see #setNum_decoder_layers(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer_Num_decoder_layers()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='num_decoder_layers '"
+ * @generated
+ */
+ int getNum_decoder_layers();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getNum_decoder_layers <em>Num decoder layers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Num decoder layers</em>' attribute.
+ * @see #getNum_decoder_layers()
+ * @generated
+ */
+ void setNum_decoder_layers(int value);
+
+ /**
+ * Returns the value of the '<em><b>Custom encoder</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Custom encoder</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Custom encoder</em>' reference.
+ * @see #setCustom_encoder(TransformerEncoder)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer_Custom_encoder()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ TransformerEncoder getCustom_encoder();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getCustom_encoder <em>Custom encoder</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Custom encoder</em>' reference.
+ * @see #getCustom_encoder()
+ * @generated
+ */
+ void setCustom_encoder(TransformerEncoder value);
+
+ /**
+ * Returns the value of the '<em><b>Custom decoder</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Custom decoder</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Custom decoder</em>' reference.
+ * @see #setCustom_decoder(TransformerDecoder)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer_Custom_decoder()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ TransformerDecoder getCustom_decoder();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getCustom_decoder <em>Custom decoder</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Custom decoder</em>' reference.
+ * @see #getCustom_decoder()
+ * @generated
+ */
+ void setCustom_decoder(TransformerDecoder value);
+
+} // Transformer
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/TransformerDecoder.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/TransformerDecoder.java
new file mode 100644
index 0000000..d0fac1f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/TransformerDecoder.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transformer Decoder</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoder#getDecoder_layer <em>Decoder layer</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformerDecoder()
+ * @model
+ * @generated
+ */
+public interface TransformerDecoder extends Transformer_layers_2 {
+ /**
+ * Returns the value of the '<em><b>Decoder layer</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Decoder layer</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Decoder layer</em>' reference.
+ * @see #setDecoder_layer(TransformerDecoderLayer)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformerDecoder_Decoder_layer()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ TransformerDecoderLayer getDecoder_layer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoder#getDecoder_layer <em>Decoder layer</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Decoder layer</em>' reference.
+ * @see #getDecoder_layer()
+ * @generated
+ */
+ void setDecoder_layer(TransformerDecoderLayer value);
+
+} // TransformerDecoder
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/TransformerDecoderLayer.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/TransformerDecoderLayer.java
new file mode 100644
index 0000000..08b9f76
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/TransformerDecoderLayer.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transformer Decoder Layer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformerDecoderLayer()
+ * @model
+ * @generated
+ */
+public interface TransformerDecoderLayer extends Transformer_layers_1 {
+} // TransformerDecoderLayer
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/TransformerEncoder.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/TransformerEncoder.java
new file mode 100644
index 0000000..044722b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/TransformerEncoder.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transformer Encoder</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoder#getEncoder_layer <em>Encoder layer</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformerEncoder()
+ * @model
+ * @generated
+ */
+public interface TransformerEncoder extends Transformer_layers_2 {
+ /**
+ * Returns the value of the '<em><b>Encoder layer</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Encoder layer</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Encoder layer</em>' reference.
+ * @see #setEncoder_layer(TransformerEncoderLayer)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformerEncoder_Encoder_layer()
+ * @model required="true" ordered="false"
+ * @generated
+ */
+ TransformerEncoderLayer getEncoder_layer();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoder#getEncoder_layer <em>Encoder layer</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Encoder layer</em>' reference.
+ * @see #getEncoder_layer()
+ * @generated
+ */
+ void setEncoder_layer(TransformerEncoderLayer value);
+
+} // TransformerEncoder
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/TransformerEncoderLayer.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/TransformerEncoderLayer.java
new file mode 100644
index 0000000..849598a
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/TransformerEncoderLayer.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transformer Encoder Layer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformerEncoderLayer()
+ * @model
+ * @generated
+ */
+public interface TransformerEncoderLayer extends Transformer_layers_1 {
+} // TransformerEncoderLayer
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layers.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layers.java
new file mode 100644
index 0000000..0debc7c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layers.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transformer layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer_layers()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Transformer_layers extends Model {
+} // Transformer_layers
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layersFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layersFactory.java
new file mode 100644
index 0000000..b73213f
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layersFactory.java
@@ -0,0 +1,87 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage
+ * @generated
+ */
+public interface Transformer_layersFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Transformer_layersFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Transformer</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Transformer</em>'.
+ * @generated
+ */
+ Transformer createTransformer();
+
+ /**
+ * Returns a new object of class '<em>Transformer Encoder</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Transformer Encoder</em>'.
+ * @generated
+ */
+ TransformerEncoder createTransformerEncoder();
+
+ /**
+ * Returns a new object of class '<em>Transformer Encoder Layer</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Transformer Encoder Layer</em>'.
+ * @generated
+ */
+ TransformerEncoderLayer createTransformerEncoderLayer();
+
+ /**
+ * Returns a new object of class '<em>Transformer Decoder</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Transformer Decoder</em>'.
+ * @generated
+ */
+ TransformerDecoder createTransformerDecoder();
+
+ /**
+ * Returns a new object of class '<em>Transformer Decoder Layer</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Transformer Decoder Layer</em>'.
+ * @generated
+ */
+ TransformerDecoderLayer createTransformerDecoderLayer();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Transformer_layersPackage getTransformer_layersPackage();
+
+} //Transformer_layersFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layersPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layersPackage.java
new file mode 100644
index 0000000..db4c904
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layersPackage.java
@@ -0,0 +1,1519 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Transformer_layersPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Transformer_layers"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/transformer/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Transformer_layers"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Transformer_layersPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersImpl <em>Transformer layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformer_layers()
+ * @generated
+ */
+ int TRANSFORMER_LAYERS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The number of structural features of the '<em>Transformer layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Transformer layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_1Impl <em>Transformer layers 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformer_layers_1()
+ * @generated
+ */
+ int TRANSFORMER_LAYERS_1 = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_1__BASE_CLASS = TRANSFORMER_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_1__NAME = TRANSFORMER_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_1__DATA = TRANSFORMER_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_1__REQUIRES_GRAD = TRANSFORMER_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_1__SUB_MODULE = TRANSFORMER_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_1__OPTIMIZER = TRANSFORMER_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_1__LOSS = TRANSFORMER_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Dmodel</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_1__DMODEL = TRANSFORMER_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Nhead</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_1__NHEAD = TRANSFORMER_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Dim feedforward</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_1__DIM_FEEDFORWARD = TRANSFORMER_LAYERS_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_1__DROPOUT = TRANSFORMER_LAYERS_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_1__ACTIVATION = TRANSFORMER_LAYERS_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Transformer layers 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_1_FEATURE_COUNT = TRANSFORMER_LAYERS_FEATURE_COUNT + 5;
+
+ /**
+ * The number of operations of the '<em>Transformer layers 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_1_OPERATION_COUNT = TRANSFORMER_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_2Impl <em>Transformer layers 2</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_2Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformer_layers_2()
+ * @generated
+ */
+ int TRANSFORMER_LAYERS_2 = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_2__BASE_CLASS = TRANSFORMER_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_2__NAME = TRANSFORMER_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_2__DATA = TRANSFORMER_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_2__REQUIRES_GRAD = TRANSFORMER_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_2__SUB_MODULE = TRANSFORMER_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_2__OPTIMIZER = TRANSFORMER_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_2__LOSS = TRANSFORMER_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Num layers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_2__NUM_LAYERS = TRANSFORMER_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Norm</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_2__NORM = TRANSFORMER_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Transformer layers 2</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_2_FEATURE_COUNT = TRANSFORMER_LAYERS_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Transformer layers 2</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_LAYERS_2_OPERATION_COUNT = TRANSFORMER_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerImpl <em>Transformer</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformer()
+ * @generated
+ */
+ int TRANSFORMER = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__BASE_CLASS = TRANSFORMER_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__NAME = TRANSFORMER_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__DATA = TRANSFORMER_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__REQUIRES_GRAD = TRANSFORMER_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__SUB_MODULE = TRANSFORMER_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__OPTIMIZER = TRANSFORMER_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__LOSS = TRANSFORMER_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Dmodel</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__DMODEL = TRANSFORMER_LAYERS_1__DMODEL;
+
+ /**
+ * The feature id for the '<em><b>Nhead</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__NHEAD = TRANSFORMER_LAYERS_1__NHEAD;
+
+ /**
+ * The feature id for the '<em><b>Dim feedforward</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__DIM_FEEDFORWARD = TRANSFORMER_LAYERS_1__DIM_FEEDFORWARD;
+
+ /**
+ * The feature id for the '<em><b>Dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__DROPOUT = TRANSFORMER_LAYERS_1__DROPOUT;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__ACTIVATION = TRANSFORMER_LAYERS_1__ACTIVATION;
+
+ /**
+ * The feature id for the '<em><b>Num encoder layers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__NUM_ENCODER_LAYERS = TRANSFORMER_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Num decoder layers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__NUM_DECODER_LAYERS = TRANSFORMER_LAYERS_1_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Custom encoder</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__CUSTOM_ENCODER = TRANSFORMER_LAYERS_1_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Custom decoder</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER__CUSTOM_DECODER = TRANSFORMER_LAYERS_1_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>Transformer</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_FEATURE_COUNT = TRANSFORMER_LAYERS_1_FEATURE_COUNT + 4;
+
+ /**
+ * The number of operations of the '<em>Transformer</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_OPERATION_COUNT = TRANSFORMER_LAYERS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerEncoderImpl <em>Transformer Encoder</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerEncoderImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformerEncoder()
+ * @generated
+ */
+ int TRANSFORMER_ENCODER = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER__BASE_CLASS = TRANSFORMER_LAYERS_2__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER__NAME = TRANSFORMER_LAYERS_2__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER__DATA = TRANSFORMER_LAYERS_2__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER__REQUIRES_GRAD = TRANSFORMER_LAYERS_2__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER__SUB_MODULE = TRANSFORMER_LAYERS_2__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER__OPTIMIZER = TRANSFORMER_LAYERS_2__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER__LOSS = TRANSFORMER_LAYERS_2__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Num layers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER__NUM_LAYERS = TRANSFORMER_LAYERS_2__NUM_LAYERS;
+
+ /**
+ * The feature id for the '<em><b>Norm</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER__NORM = TRANSFORMER_LAYERS_2__NORM;
+
+ /**
+ * The feature id for the '<em><b>Encoder layer</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER__ENCODER_LAYER = TRANSFORMER_LAYERS_2_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Transformer Encoder</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_FEATURE_COUNT = TRANSFORMER_LAYERS_2_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Transformer Encoder</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_OPERATION_COUNT = TRANSFORMER_LAYERS_2_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerEncoderLayerImpl <em>Transformer Encoder Layer</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerEncoderLayerImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformerEncoderLayer()
+ * @generated
+ */
+ int TRANSFORMER_ENCODER_LAYER = 5;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_LAYER__BASE_CLASS = TRANSFORMER_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_LAYER__NAME = TRANSFORMER_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_LAYER__DATA = TRANSFORMER_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_LAYER__REQUIRES_GRAD = TRANSFORMER_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_LAYER__SUB_MODULE = TRANSFORMER_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_LAYER__OPTIMIZER = TRANSFORMER_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_LAYER__LOSS = TRANSFORMER_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Dmodel</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_LAYER__DMODEL = TRANSFORMER_LAYERS_1__DMODEL;
+
+ /**
+ * The feature id for the '<em><b>Nhead</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_LAYER__NHEAD = TRANSFORMER_LAYERS_1__NHEAD;
+
+ /**
+ * The feature id for the '<em><b>Dim feedforward</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_LAYER__DIM_FEEDFORWARD = TRANSFORMER_LAYERS_1__DIM_FEEDFORWARD;
+
+ /**
+ * The feature id for the '<em><b>Dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_LAYER__DROPOUT = TRANSFORMER_LAYERS_1__DROPOUT;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_LAYER__ACTIVATION = TRANSFORMER_LAYERS_1__ACTIVATION;
+
+ /**
+ * The number of structural features of the '<em>Transformer Encoder Layer</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_LAYER_FEATURE_COUNT = TRANSFORMER_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Transformer Encoder Layer</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_ENCODER_LAYER_OPERATION_COUNT = TRANSFORMER_LAYERS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerDecoderImpl <em>Transformer Decoder</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerDecoderImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformerDecoder()
+ * @generated
+ */
+ int TRANSFORMER_DECODER = 6;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER__BASE_CLASS = TRANSFORMER_LAYERS_2__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER__NAME = TRANSFORMER_LAYERS_2__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER__DATA = TRANSFORMER_LAYERS_2__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER__REQUIRES_GRAD = TRANSFORMER_LAYERS_2__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER__SUB_MODULE = TRANSFORMER_LAYERS_2__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER__OPTIMIZER = TRANSFORMER_LAYERS_2__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER__LOSS = TRANSFORMER_LAYERS_2__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Num layers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER__NUM_LAYERS = TRANSFORMER_LAYERS_2__NUM_LAYERS;
+
+ /**
+ * The feature id for the '<em><b>Norm</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER__NORM = TRANSFORMER_LAYERS_2__NORM;
+
+ /**
+ * The feature id for the '<em><b>Decoder layer</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER__DECODER_LAYER = TRANSFORMER_LAYERS_2_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Transformer Decoder</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_FEATURE_COUNT = TRANSFORMER_LAYERS_2_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Transformer Decoder</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_OPERATION_COUNT = TRANSFORMER_LAYERS_2_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerDecoderLayerImpl <em>Transformer Decoder Layer</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerDecoderLayerImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformerDecoderLayer()
+ * @generated
+ */
+ int TRANSFORMER_DECODER_LAYER = 7;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_LAYER__BASE_CLASS = TRANSFORMER_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_LAYER__NAME = TRANSFORMER_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_LAYER__DATA = TRANSFORMER_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_LAYER__REQUIRES_GRAD = TRANSFORMER_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_LAYER__SUB_MODULE = TRANSFORMER_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_LAYER__OPTIMIZER = TRANSFORMER_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_LAYER__LOSS = TRANSFORMER_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Dmodel</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_LAYER__DMODEL = TRANSFORMER_LAYERS_1__DMODEL;
+
+ /**
+ * The feature id for the '<em><b>Nhead</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_LAYER__NHEAD = TRANSFORMER_LAYERS_1__NHEAD;
+
+ /**
+ * The feature id for the '<em><b>Dim feedforward</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_LAYER__DIM_FEEDFORWARD = TRANSFORMER_LAYERS_1__DIM_FEEDFORWARD;
+
+ /**
+ * The feature id for the '<em><b>Dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_LAYER__DROPOUT = TRANSFORMER_LAYERS_1__DROPOUT;
+
+ /**
+ * The feature id for the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_LAYER__ACTIVATION = TRANSFORMER_LAYERS_1__ACTIVATION;
+
+ /**
+ * The number of structural features of the '<em>Transformer Decoder Layer</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_LAYER_FEATURE_COUNT = TRANSFORMER_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Transformer Decoder Layer</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TRANSFORMER_DECODER_LAYER_OPERATION_COUNT = TRANSFORMER_LAYERS_1_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers <em>Transformer layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transformer layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers
+ * @generated
+ */
+ EClass getTransformer_layers();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1 <em>Transformer layers 1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transformer layers 1</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1
+ * @generated
+ */
+ EClass getTransformer_layers_1();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getD_model <em>Dmodel</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dmodel</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getD_model()
+ * @see #getTransformer_layers_1()
+ * @generated
+ */
+ EAttribute getTransformer_layers_1_D_model();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getNhead <em>Nhead</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Nhead</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getNhead()
+ * @see #getTransformer_layers_1()
+ * @generated
+ */
+ EAttribute getTransformer_layers_1_Nhead();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getDim_feedforward <em>Dim feedforward</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dim feedforward</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getDim_feedforward()
+ * @see #getTransformer_layers_1()
+ * @generated
+ */
+ EAttribute getTransformer_layers_1_Dim_feedforward();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getDropout <em>Dropout</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Dropout</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getDropout()
+ * @see #getTransformer_layers_1()
+ * @generated
+ */
+ EAttribute getTransformer_layers_1_Dropout();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getActivation <em>Activation</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Activation</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getActivation()
+ * @see #getTransformer_layers_1()
+ * @generated
+ */
+ EAttribute getTransformer_layers_1_Activation();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_2 <em>Transformer layers 2</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transformer layers 2</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_2
+ * @generated
+ */
+ EClass getTransformer_layers_2();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_2#getNum_layers <em>Num layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Num layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_2#getNum_layers()
+ * @see #getTransformer_layers_2()
+ * @generated
+ */
+ EAttribute getTransformer_layers_2_Num_layers();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_2#getNorm <em>Norm</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Norm</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_2#getNorm()
+ * @see #getTransformer_layers_2()
+ * @generated
+ */
+ EReference getTransformer_layers_2_Norm();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer <em>Transformer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transformer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer
+ * @generated
+ */
+ EClass getTransformer();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getNum_encoder_layers <em>Num encoder layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Num encoder layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getNum_encoder_layers()
+ * @see #getTransformer()
+ * @generated
+ */
+ EAttribute getTransformer_Num_encoder_layers();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getNum_decoder_layers <em>Num decoder layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Num decoder layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getNum_decoder_layers()
+ * @see #getTransformer()
+ * @generated
+ */
+ EAttribute getTransformer_Num_decoder_layers();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getCustom_encoder <em>Custom encoder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Custom encoder</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getCustom_encoder()
+ * @see #getTransformer()
+ * @generated
+ */
+ EReference getTransformer_Custom_encoder();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getCustom_decoder <em>Custom decoder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Custom decoder</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer#getCustom_decoder()
+ * @see #getTransformer()
+ * @generated
+ */
+ EReference getTransformer_Custom_decoder();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoder <em>Transformer Encoder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transformer Encoder</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoder
+ * @generated
+ */
+ EClass getTransformerEncoder();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoder#getEncoder_layer <em>Encoder layer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Encoder layer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoder#getEncoder_layer()
+ * @see #getTransformerEncoder()
+ * @generated
+ */
+ EReference getTransformerEncoder_Encoder_layer();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoderLayer <em>Transformer Encoder Layer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transformer Encoder Layer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoderLayer
+ * @generated
+ */
+ EClass getTransformerEncoderLayer();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoder <em>Transformer Decoder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transformer Decoder</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoder
+ * @generated
+ */
+ EClass getTransformerDecoder();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoder#getDecoder_layer <em>Decoder layer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Decoder layer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoder#getDecoder_layer()
+ * @see #getTransformerDecoder()
+ * @generated
+ */
+ EReference getTransformerDecoder_Decoder_layer();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoderLayer <em>Transformer Decoder Layer</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Transformer Decoder Layer</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoderLayer
+ * @generated
+ */
+ EClass getTransformerDecoderLayer();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Transformer_layersFactory getTransformer_layersFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersImpl <em>Transformer layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformer_layers()
+ * @generated
+ */
+ EClass TRANSFORMER_LAYERS = eINSTANCE.getTransformer_layers();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_1Impl <em>Transformer layers 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformer_layers_1()
+ * @generated
+ */
+ EClass TRANSFORMER_LAYERS_1 = eINSTANCE.getTransformer_layers_1();
+
+ /**
+ * The meta object literal for the '<em><b>Dmodel</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSFORMER_LAYERS_1__DMODEL = eINSTANCE.getTransformer_layers_1_D_model();
+
+ /**
+ * The meta object literal for the '<em><b>Nhead</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSFORMER_LAYERS_1__NHEAD = eINSTANCE.getTransformer_layers_1_Nhead();
+
+ /**
+ * The meta object literal for the '<em><b>Dim feedforward</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSFORMER_LAYERS_1__DIM_FEEDFORWARD = eINSTANCE.getTransformer_layers_1_Dim_feedforward();
+
+ /**
+ * The meta object literal for the '<em><b>Dropout</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSFORMER_LAYERS_1__DROPOUT = eINSTANCE.getTransformer_layers_1_Dropout();
+
+ /**
+ * The meta object literal for the '<em><b>Activation</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSFORMER_LAYERS_1__ACTIVATION = eINSTANCE.getTransformer_layers_1_Activation();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_2Impl <em>Transformer layers 2</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_2Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformer_layers_2()
+ * @generated
+ */
+ EClass TRANSFORMER_LAYERS_2 = eINSTANCE.getTransformer_layers_2();
+
+ /**
+ * The meta object literal for the '<em><b>Num layers</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSFORMER_LAYERS_2__NUM_LAYERS = eINSTANCE.getTransformer_layers_2_Num_layers();
+
+ /**
+ * The meta object literal for the '<em><b>Norm</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSFORMER_LAYERS_2__NORM = eINSTANCE.getTransformer_layers_2_Norm();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerImpl <em>Transformer</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformer()
+ * @generated
+ */
+ EClass TRANSFORMER = eINSTANCE.getTransformer();
+
+ /**
+ * The meta object literal for the '<em><b>Num encoder layers</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSFORMER__NUM_ENCODER_LAYERS = eINSTANCE.getTransformer_Num_encoder_layers();
+
+ /**
+ * The meta object literal for the '<em><b>Num decoder layers</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TRANSFORMER__NUM_DECODER_LAYERS = eINSTANCE.getTransformer_Num_decoder_layers();
+
+ /**
+ * The meta object literal for the '<em><b>Custom encoder</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSFORMER__CUSTOM_ENCODER = eINSTANCE.getTransformer_Custom_encoder();
+
+ /**
+ * The meta object literal for the '<em><b>Custom decoder</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSFORMER__CUSTOM_DECODER = eINSTANCE.getTransformer_Custom_decoder();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerEncoderImpl <em>Transformer Encoder</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerEncoderImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformerEncoder()
+ * @generated
+ */
+ EClass TRANSFORMER_ENCODER = eINSTANCE.getTransformerEncoder();
+
+ /**
+ * The meta object literal for the '<em><b>Encoder layer</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSFORMER_ENCODER__ENCODER_LAYER = eINSTANCE.getTransformerEncoder_Encoder_layer();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerEncoderLayerImpl <em>Transformer Encoder Layer</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerEncoderLayerImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformerEncoderLayer()
+ * @generated
+ */
+ EClass TRANSFORMER_ENCODER_LAYER = eINSTANCE.getTransformerEncoderLayer();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerDecoderImpl <em>Transformer Decoder</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerDecoderImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformerDecoder()
+ * @generated
+ */
+ EClass TRANSFORMER_DECODER = eINSTANCE.getTransformerDecoder();
+
+ /**
+ * The meta object literal for the '<em><b>Decoder layer</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TRANSFORMER_DECODER__DECODER_LAYER = eINSTANCE.getTransformerDecoder_Decoder_layer();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerDecoderLayerImpl <em>Transformer Decoder Layer</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerDecoderLayerImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl#getTransformerDecoderLayer()
+ * @generated
+ */
+ EClass TRANSFORMER_DECODER_LAYER = eINSTANCE.getTransformerDecoderLayer();
+
+ }
+
+} //Transformer_layersPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layers_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layers_1.java
new file mode 100644
index 0000000..8ce8aa3
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layers_1.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transformer layers 1</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getD_model <em>Dmodel</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getNhead <em>Nhead</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getDim_feedforward <em>Dim feedforward</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getDropout <em>Dropout</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getActivation <em>Activation</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer_layers_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Transformer_layers_1 extends Transformer_layers {
+ /**
+ * Returns the value of the '<em><b>Dmodel</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dmodel</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dmodel</em>' attribute.
+ * @see #setD_model(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer_layers_1_D_model()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getD_model();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getD_model <em>Dmodel</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dmodel</em>' attribute.
+ * @see #getD_model()
+ * @generated
+ */
+ void setD_model(int value);
+
+ /**
+ * Returns the value of the '<em><b>Nhead</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Nhead</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Nhead</em>' attribute.
+ * @see #setNhead(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer_layers_1_Nhead()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getNhead();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getNhead <em>Nhead</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Nhead</em>' attribute.
+ * @see #getNhead()
+ * @generated
+ */
+ void setNhead(int value);
+
+ /**
+ * Returns the value of the '<em><b>Dim feedforward</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dim feedforward</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dim feedforward</em>' attribute.
+ * @see #setDim_feedforward(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer_layers_1_Dim_feedforward()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ int getDim_feedforward();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getDim_feedforward <em>Dim feedforward</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dim feedforward</em>' attribute.
+ * @see #getDim_feedforward()
+ * @generated
+ */
+ void setDim_feedforward(int value);
+
+ /**
+ * Returns the value of the '<em><b>Dropout</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Dropout</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Dropout</em>' attribute.
+ * @see #setDropout(double)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer_layers_1_Dropout()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ double getDropout();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getDropout <em>Dropout</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Dropout</em>' attribute.
+ * @see #getDropout()
+ * @generated
+ */
+ void setDropout(double value);
+
+ /**
+ * Returns the value of the '<em><b>Activation</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Activation</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Activation</em>' attribute.
+ * @see #setActivation(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer_layers_1_Activation()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getActivation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1#getActivation <em>Activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Activation</em>' attribute.
+ * @see #getActivation()
+ * @generated
+ */
+ void setActivation(String value);
+
+} // Transformer_layers_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layers_2.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layers_2.java
new file mode 100644
index 0000000..482e346
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/Transformer_layers_2.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Transformer layers 2</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_2#getNum_layers <em>Num layers</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_2#getNorm <em>Norm</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer_layers_2()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Transformer_layers_2 extends Transformer_layers {
+ /**
+ * Returns the value of the '<em><b>Num layers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Num layers</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Num layers</em>' attribute.
+ * @see #setNum_layers(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer_layers_2_Num_layers()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getNum_layers();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_2#getNum_layers <em>Num layers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Num layers</em>' attribute.
+ * @see #getNum_layers()
+ * @generated
+ */
+ void setNum_layers(int value);
+
+ /**
+ * Returns the value of the '<em><b>Norm</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Norm</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Norm</em>' reference.
+ * @see #setNorm(LayerNorm)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#getTransformer_layers_2_Norm()
+ * @model ordered="false"
+ * @generated
+ */
+ LayerNorm getNorm();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_2#getNorm <em>Norm</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Norm</em>' reference.
+ * @see #getNorm()
+ * @generated
+ */
+ void setNorm(LayerNorm value);
+
+} // Transformer_layers_2
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerDecoderImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerDecoderImpl.java
new file mode 100644
index 0000000..56daaed
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerDecoderImpl.java
@@ -0,0 +1,167 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoder;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoderLayer;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transformer Decoder</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerDecoderImpl#getDecoder_layer <em>Decoder layer</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TransformerDecoderImpl extends Transformer_layers_2Impl implements TransformerDecoder {
+ /**
+ * The cached value of the '{@link #getDecoder_layer() <em>Decoder layer</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDecoder_layer()
+ * @generated
+ * @ordered
+ */
+ protected TransformerDecoderLayer decoder_layer;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TransformerDecoderImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Transformer_layersPackage.Literals.TRANSFORMER_DECODER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TransformerDecoderLayer getDecoder_layer() {
+ if (decoder_layer != null && decoder_layer.eIsProxy()) {
+ InternalEObject oldDecoder_layer = (InternalEObject)decoder_layer;
+ decoder_layer = (TransformerDecoderLayer)eResolveProxy(oldDecoder_layer);
+ if (decoder_layer != oldDecoder_layer) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Transformer_layersPackage.TRANSFORMER_DECODER__DECODER_LAYER, oldDecoder_layer, decoder_layer));
+ }
+ }
+ return decoder_layer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TransformerDecoderLayer basicGetDecoder_layer() {
+ return decoder_layer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDecoder_layer(TransformerDecoderLayer newDecoder_layer) {
+ TransformerDecoderLayer oldDecoder_layer = decoder_layer;
+ decoder_layer = newDecoder_layer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Transformer_layersPackage.TRANSFORMER_DECODER__DECODER_LAYER, oldDecoder_layer, decoder_layer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_DECODER__DECODER_LAYER:
+ if (resolve) return getDecoder_layer();
+ return basicGetDecoder_layer();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_DECODER__DECODER_LAYER:
+ setDecoder_layer((TransformerDecoderLayer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_DECODER__DECODER_LAYER:
+ setDecoder_layer((TransformerDecoderLayer)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_DECODER__DECODER_LAYER:
+ return decoder_layer != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TransformerDecoderImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerDecoderLayerImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerDecoderLayerImpl.java
new file mode 100644
index 0000000..c91e046
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerDecoderLayerImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoderLayer;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transformer Decoder Layer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class TransformerDecoderLayerImpl extends Transformer_layers_1Impl implements TransformerDecoderLayer {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TransformerDecoderLayerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Transformer_layersPackage.Literals.TRANSFORMER_DECODER_LAYER;
+ }
+
+} //TransformerDecoderLayerImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerEncoderImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerEncoderImpl.java
new file mode 100644
index 0000000..3cad4b3
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerEncoderImpl.java
@@ -0,0 +1,167 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoder;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoderLayer;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transformer Encoder</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerEncoderImpl#getEncoder_layer <em>Encoder layer</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TransformerEncoderImpl extends Transformer_layers_2Impl implements TransformerEncoder {
+ /**
+ * The cached value of the '{@link #getEncoder_layer() <em>Encoder layer</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEncoder_layer()
+ * @generated
+ * @ordered
+ */
+ protected TransformerEncoderLayer encoder_layer;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TransformerEncoderImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Transformer_layersPackage.Literals.TRANSFORMER_ENCODER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TransformerEncoderLayer getEncoder_layer() {
+ if (encoder_layer != null && encoder_layer.eIsProxy()) {
+ InternalEObject oldEncoder_layer = (InternalEObject)encoder_layer;
+ encoder_layer = (TransformerEncoderLayer)eResolveProxy(oldEncoder_layer);
+ if (encoder_layer != oldEncoder_layer) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Transformer_layersPackage.TRANSFORMER_ENCODER__ENCODER_LAYER, oldEncoder_layer, encoder_layer));
+ }
+ }
+ return encoder_layer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TransformerEncoderLayer basicGetEncoder_layer() {
+ return encoder_layer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setEncoder_layer(TransformerEncoderLayer newEncoder_layer) {
+ TransformerEncoderLayer oldEncoder_layer = encoder_layer;
+ encoder_layer = newEncoder_layer;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Transformer_layersPackage.TRANSFORMER_ENCODER__ENCODER_LAYER, oldEncoder_layer, encoder_layer));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_ENCODER__ENCODER_LAYER:
+ if (resolve) return getEncoder_layer();
+ return basicGetEncoder_layer();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_ENCODER__ENCODER_LAYER:
+ setEncoder_layer((TransformerEncoderLayer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_ENCODER__ENCODER_LAYER:
+ setEncoder_layer((TransformerEncoderLayer)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_ENCODER__ENCODER_LAYER:
+ return encoder_layer != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //TransformerEncoderImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerEncoderLayerImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerEncoderLayerImpl.java
new file mode 100644
index 0000000..d086d2e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerEncoderLayerImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoderLayer;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transformer Encoder Layer</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class TransformerEncoderLayerImpl extends Transformer_layers_1Impl implements TransformerEncoderLayer {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TransformerEncoderLayerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Transformer_layersPackage.Literals.TRANSFORMER_ENCODER_LAYER;
+ }
+
+} //TransformerEncoderLayerImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerImpl.java
new file mode 100644
index 0000000..78c218c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/TransformerImpl.java
@@ -0,0 +1,356 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoder;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoder;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transformer</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerImpl#getNum_encoder_layers <em>Num encoder layers</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerImpl#getNum_decoder_layers <em>Num decoder layers</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerImpl#getCustom_encoder <em>Custom encoder</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.TransformerImpl#getCustom_decoder <em>Custom decoder</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TransformerImpl extends Transformer_layers_1Impl implements Transformer {
+ /**
+ * The default value of the '{@link #getNum_encoder_layers() <em>Num encoder layers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_encoder_layers()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUM_ENCODER_LAYERS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNum_encoder_layers() <em>Num encoder layers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_encoder_layers()
+ * @generated
+ * @ordered
+ */
+ protected int num_encoder_layers = NUM_ENCODER_LAYERS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNum_decoder_layers() <em>Num decoder layers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_decoder_layers()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUM_DECODER_LAYERS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNum_decoder_layers() <em>Num decoder layers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_decoder_layers()
+ * @generated
+ * @ordered
+ */
+ protected int num_decoder_layers = NUM_DECODER_LAYERS_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getCustom_encoder() <em>Custom encoder</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCustom_encoder()
+ * @generated
+ * @ordered
+ */
+ protected TransformerEncoder custom_encoder;
+
+ /**
+ * The cached value of the '{@link #getCustom_decoder() <em>Custom decoder</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCustom_decoder()
+ * @generated
+ * @ordered
+ */
+ protected TransformerDecoder custom_decoder;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TransformerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Transformer_layersPackage.Literals.TRANSFORMER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getNum_encoder_layers() {
+ return num_encoder_layers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNum_encoder_layers(int newNum_encoder_layers) {
+ int oldNum_encoder_layers = num_encoder_layers;
+ num_encoder_layers = newNum_encoder_layers;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Transformer_layersPackage.TRANSFORMER__NUM_ENCODER_LAYERS, oldNum_encoder_layers, num_encoder_layers));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getNum_decoder_layers() {
+ return num_decoder_layers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNum_decoder_layers(int newNum_decoder_layers) {
+ int oldNum_decoder_layers = num_decoder_layers;
+ num_decoder_layers = newNum_decoder_layers;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Transformer_layersPackage.TRANSFORMER__NUM_DECODER_LAYERS, oldNum_decoder_layers, num_decoder_layers));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TransformerEncoder getCustom_encoder() {
+ if (custom_encoder != null && custom_encoder.eIsProxy()) {
+ InternalEObject oldCustom_encoder = (InternalEObject)custom_encoder;
+ custom_encoder = (TransformerEncoder)eResolveProxy(oldCustom_encoder);
+ if (custom_encoder != oldCustom_encoder) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Transformer_layersPackage.TRANSFORMER__CUSTOM_ENCODER, oldCustom_encoder, custom_encoder));
+ }
+ }
+ return custom_encoder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TransformerEncoder basicGetCustom_encoder() {
+ return custom_encoder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setCustom_encoder(TransformerEncoder newCustom_encoder) {
+ TransformerEncoder oldCustom_encoder = custom_encoder;
+ custom_encoder = newCustom_encoder;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Transformer_layersPackage.TRANSFORMER__CUSTOM_ENCODER, oldCustom_encoder, custom_encoder));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TransformerDecoder getCustom_decoder() {
+ if (custom_decoder != null && custom_decoder.eIsProxy()) {
+ InternalEObject oldCustom_decoder = (InternalEObject)custom_decoder;
+ custom_decoder = (TransformerDecoder)eResolveProxy(oldCustom_decoder);
+ if (custom_decoder != oldCustom_decoder) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Transformer_layersPackage.TRANSFORMER__CUSTOM_DECODER, oldCustom_decoder, custom_decoder));
+ }
+ }
+ return custom_decoder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TransformerDecoder basicGetCustom_decoder() {
+ return custom_decoder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setCustom_decoder(TransformerDecoder newCustom_decoder) {
+ TransformerDecoder oldCustom_decoder = custom_decoder;
+ custom_decoder = newCustom_decoder;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Transformer_layersPackage.TRANSFORMER__CUSTOM_DECODER, oldCustom_decoder, custom_decoder));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER__NUM_ENCODER_LAYERS:
+ return getNum_encoder_layers();
+ case Transformer_layersPackage.TRANSFORMER__NUM_DECODER_LAYERS:
+ return getNum_decoder_layers();
+ case Transformer_layersPackage.TRANSFORMER__CUSTOM_ENCODER:
+ if (resolve) return getCustom_encoder();
+ return basicGetCustom_encoder();
+ case Transformer_layersPackage.TRANSFORMER__CUSTOM_DECODER:
+ if (resolve) return getCustom_decoder();
+ return basicGetCustom_decoder();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER__NUM_ENCODER_LAYERS:
+ setNum_encoder_layers((Integer)newValue);
+ return;
+ case Transformer_layersPackage.TRANSFORMER__NUM_DECODER_LAYERS:
+ setNum_decoder_layers((Integer)newValue);
+ return;
+ case Transformer_layersPackage.TRANSFORMER__CUSTOM_ENCODER:
+ setCustom_encoder((TransformerEncoder)newValue);
+ return;
+ case Transformer_layersPackage.TRANSFORMER__CUSTOM_DECODER:
+ setCustom_decoder((TransformerDecoder)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER__NUM_ENCODER_LAYERS:
+ setNum_encoder_layers(NUM_ENCODER_LAYERS_EDEFAULT);
+ return;
+ case Transformer_layersPackage.TRANSFORMER__NUM_DECODER_LAYERS:
+ setNum_decoder_layers(NUM_DECODER_LAYERS_EDEFAULT);
+ return;
+ case Transformer_layersPackage.TRANSFORMER__CUSTOM_ENCODER:
+ setCustom_encoder((TransformerEncoder)null);
+ return;
+ case Transformer_layersPackage.TRANSFORMER__CUSTOM_DECODER:
+ setCustom_decoder((TransformerDecoder)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER__NUM_ENCODER_LAYERS:
+ return num_encoder_layers != NUM_ENCODER_LAYERS_EDEFAULT;
+ case Transformer_layersPackage.TRANSFORMER__NUM_DECODER_LAYERS:
+ return num_decoder_layers != NUM_DECODER_LAYERS_EDEFAULT;
+ case Transformer_layersPackage.TRANSFORMER__CUSTOM_ENCODER:
+ return custom_encoder != null;
+ case Transformer_layersPackage.TRANSFORMER__CUSTOM_DECODER:
+ return custom_decoder != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (num_encoder_layers: "); //$NON-NLS-1$
+ result.append(num_encoder_layers);
+ result.append(", num_decoder_layers: "); //$NON-NLS-1$
+ result.append(num_decoder_layers);
+ result.append(')');
+ return result.toString();
+ }
+
+} //TransformerImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layersFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layersFactoryImpl.java
new file mode 100644
index 0000000..ea54227
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layersFactoryImpl.java
@@ -0,0 +1,154 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Transformer_layersFactoryImpl extends EFactoryImpl implements Transformer_layersFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Transformer_layersFactory init() {
+ try {
+ Transformer_layersFactory theTransformer_layersFactory = (Transformer_layersFactory)EPackage.Registry.INSTANCE.getEFactory(Transformer_layersPackage.eNS_URI);
+ if (theTransformer_layersFactory != null) {
+ return theTransformer_layersFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Transformer_layersFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Transformer_layersFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Transformer_layersPackage.TRANSFORMER: return createTransformer();
+ case Transformer_layersPackage.TRANSFORMER_ENCODER: return createTransformerEncoder();
+ case Transformer_layersPackage.TRANSFORMER_ENCODER_LAYER: return createTransformerEncoderLayer();
+ case Transformer_layersPackage.TRANSFORMER_DECODER: return createTransformerDecoder();
+ case Transformer_layersPackage.TRANSFORMER_DECODER_LAYER: return createTransformerDecoderLayer();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Transformer createTransformer() {
+ TransformerImpl transformer = new TransformerImpl();
+ return transformer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TransformerEncoder createTransformerEncoder() {
+ TransformerEncoderImpl transformerEncoder = new TransformerEncoderImpl();
+ return transformerEncoder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TransformerEncoderLayer createTransformerEncoderLayer() {
+ TransformerEncoderLayerImpl transformerEncoderLayer = new TransformerEncoderLayerImpl();
+ return transformerEncoderLayer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TransformerDecoder createTransformerDecoder() {
+ TransformerDecoderImpl transformerDecoder = new TransformerDecoderImpl();
+ return transformerDecoder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TransformerDecoderLayer createTransformerDecoderLayer() {
+ TransformerDecoderLayerImpl transformerDecoderLayer = new TransformerDecoderLayerImpl();
+ return transformerDecoderLayer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Transformer_layersPackage getTransformer_layersPackage() {
+ return (Transformer_layersPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Transformer_layersPackage getPackage() {
+ return Transformer_layersPackage.eINSTANCE;
+ }
+
+} //Transformer_layersFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layersImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layersImpl.java
new file mode 100644
index 0000000..0d5afda
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layersImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transformer layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class Transformer_layersImpl extends ModelImpl implements Transformer_layers {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Transformer_layersImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Transformer_layersPackage.Literals.TRANSFORMER_LAYERS;
+ }
+
+} //Transformer_layersImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layersPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layersPackageImpl.java
new file mode 100644
index 0000000..14d8979
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layersPackageImpl.java
@@ -0,0 +1,704 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoder;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoderLayer;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoder;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoderLayer;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_2;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Transformer_layersPackageImpl extends EPackageImpl implements Transformer_layersPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transformer_layersEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transformer_layers_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transformer_layers_2EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transformerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transformerEncoderEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transformerEncoderLayerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transformerDecoderEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transformerDecoderLayerEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Transformer_layersPackageImpl() {
+ super(eNS_URI, Transformer_layersFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Transformer_layersPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Transformer_layersPackage init() {
+ if (isInited) return (Transformer_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredTransformer_layersPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = registeredTransformer_layersPackage instanceof Transformer_layersPackageImpl ? (Transformer_layersPackageImpl)registeredTransformer_layersPackage : new Transformer_layersPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theTransformer_layersPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theTransformer_layersPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theTransformer_layersPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Transformer_layersPackage.eNS_URI, theTransformer_layersPackage);
+ return theTransformer_layersPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTransformer_layers() {
+ return transformer_layersEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTransformer_layers_1() {
+ return transformer_layers_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTransformer_layers_1_D_model() {
+ return (EAttribute)transformer_layers_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTransformer_layers_1_Nhead() {
+ return (EAttribute)transformer_layers_1EClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTransformer_layers_1_Dim_feedforward() {
+ return (EAttribute)transformer_layers_1EClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTransformer_layers_1_Dropout() {
+ return (EAttribute)transformer_layers_1EClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTransformer_layers_1_Activation() {
+ return (EAttribute)transformer_layers_1EClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTransformer_layers_2() {
+ return transformer_layers_2EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTransformer_layers_2_Num_layers() {
+ return (EAttribute)transformer_layers_2EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTransformer_layers_2_Norm() {
+ return (EReference)transformer_layers_2EClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTransformer() {
+ return transformerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTransformer_Num_encoder_layers() {
+ return (EAttribute)transformerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTransformer_Num_decoder_layers() {
+ return (EAttribute)transformerEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTransformer_Custom_encoder() {
+ return (EReference)transformerEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTransformer_Custom_decoder() {
+ return (EReference)transformerEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTransformerEncoder() {
+ return transformerEncoderEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTransformerEncoder_Encoder_layer() {
+ return (EReference)transformerEncoderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTransformerEncoderLayer() {
+ return transformerEncoderLayerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTransformerDecoder() {
+ return transformerDecoderEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTransformerDecoder_Decoder_layer() {
+ return (EReference)transformerDecoderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getTransformerDecoderLayer() {
+ return transformerDecoderLayerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Transformer_layersFactory getTransformer_layersFactory() {
+ return (Transformer_layersFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ transformer_layersEClass = createEClass(TRANSFORMER_LAYERS);
+
+ transformer_layers_1EClass = createEClass(TRANSFORMER_LAYERS_1);
+ createEAttribute(transformer_layers_1EClass, TRANSFORMER_LAYERS_1__DMODEL);
+ createEAttribute(transformer_layers_1EClass, TRANSFORMER_LAYERS_1__NHEAD);
+ createEAttribute(transformer_layers_1EClass, TRANSFORMER_LAYERS_1__DIM_FEEDFORWARD);
+ createEAttribute(transformer_layers_1EClass, TRANSFORMER_LAYERS_1__DROPOUT);
+ createEAttribute(transformer_layers_1EClass, TRANSFORMER_LAYERS_1__ACTIVATION);
+
+ transformer_layers_2EClass = createEClass(TRANSFORMER_LAYERS_2);
+ createEAttribute(transformer_layers_2EClass, TRANSFORMER_LAYERS_2__NUM_LAYERS);
+ createEReference(transformer_layers_2EClass, TRANSFORMER_LAYERS_2__NORM);
+
+ transformerEClass = createEClass(TRANSFORMER);
+ createEAttribute(transformerEClass, TRANSFORMER__NUM_ENCODER_LAYERS);
+ createEAttribute(transformerEClass, TRANSFORMER__NUM_DECODER_LAYERS);
+ createEReference(transformerEClass, TRANSFORMER__CUSTOM_ENCODER);
+ createEReference(transformerEClass, TRANSFORMER__CUSTOM_DECODER);
+
+ transformerEncoderEClass = createEClass(TRANSFORMER_ENCODER);
+ createEReference(transformerEncoderEClass, TRANSFORMER_ENCODER__ENCODER_LAYER);
+
+ transformerEncoderLayerEClass = createEClass(TRANSFORMER_ENCODER_LAYER);
+
+ transformerDecoderEClass = createEClass(TRANSFORMER_DECODER);
+ createEReference(transformerDecoderEClass, TRANSFORMER_DECODER__DECODER_LAYER);
+
+ transformerDecoderLayerEClass = createEClass(TRANSFORMER_DECODER_LAYER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+ Normalization_layersPackage theNormalization_layersPackage = (Normalization_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ transformer_layersEClass.getESuperTypes().add(theModulePackage.getModel());
+ transformer_layers_1EClass.getESuperTypes().add(this.getTransformer_layers());
+ transformer_layers_2EClass.getESuperTypes().add(this.getTransformer_layers());
+ transformerEClass.getESuperTypes().add(this.getTransformer_layers_1());
+ transformerEncoderEClass.getESuperTypes().add(this.getTransformer_layers_2());
+ transformerEncoderLayerEClass.getESuperTypes().add(this.getTransformer_layers_1());
+ transformerDecoderEClass.getESuperTypes().add(this.getTransformer_layers_2());
+ transformerDecoderLayerEClass.getESuperTypes().add(this.getTransformer_layers_1());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(transformer_layersEClass, Transformer_layers.class, "Transformer_layers", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(transformer_layers_1EClass, Transformer_layers_1.class, "Transformer_layers_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getTransformer_layers_1_D_model(), theTypesPackage.getInteger(), "d_model", null, 0, 1, Transformer_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getTransformer_layers_1_Nhead(), theTypesPackage.getInteger(), "nhead", null, 0, 1, Transformer_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getTransformer_layers_1_Dim_feedforward(), theTypesPackage.getInteger(), "dim_feedforward", null, 0, 1, Transformer_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getTransformer_layers_1_Dropout(), theTypesPackage.getReal(), "dropout", null, 0, 1, Transformer_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getTransformer_layers_1_Activation(), theTypesPackage.getString(), "activation", null, 0, 1, Transformer_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(transformer_layers_2EClass, Transformer_layers_2.class, "Transformer_layers_2", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getTransformer_layers_2_Num_layers(), theTypesPackage.getInteger(), "num_layers", null, 1, 1, Transformer_layers_2.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTransformer_layers_2_Norm(), theNormalization_layersPackage.getLayerNorm(), null, "norm", null, 0, 1, Transformer_layers_2.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(transformerEClass, Transformer.class, "Transformer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getTransformer_Num_encoder_layers(), theTypesPackage.getInteger(), "num_encoder_layers", null, 1, 1, Transformer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getTransformer_Num_decoder_layers(), theTypesPackage.getInteger(), "num_decoder_layers", null, 1, 1, Transformer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTransformer_Custom_encoder(), this.getTransformerEncoder(), null, "custom_encoder", null, 1, 1, Transformer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEReference(getTransformer_Custom_decoder(), this.getTransformerDecoder(), null, "custom_decoder", null, 1, 1, Transformer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(transformerEncoderEClass, TransformerEncoder.class, "TransformerEncoder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getTransformerEncoder_Encoder_layer(), this.getTransformerEncoderLayer(), null, "encoder_layer", null, 1, 1, TransformerEncoder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(transformerEncoderLayerEClass, TransformerEncoderLayer.class, "TransformerEncoderLayer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(transformerDecoderEClass, TransformerDecoder.class, "TransformerDecoder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEReference(getTransformerDecoder_Decoder_layer(), this.getTransformerDecoderLayer(), null, "decoder_layer", null, 1, 1, TransformerDecoder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(transformerDecoderLayerEClass, TransformerDecoderLayer.class, "TransformerDecoderLayer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ // Create annotations
+ // http://www.eclipse.org/uml2/2.0.0/UML
+ createUMLAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/uml2/2.0.0/UML</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createUMLAnnotations() {
+ String source = "http://www.eclipse.org/uml2/2.0.0/UML"; //$NON-NLS-1$
+ addAnnotation
+ (getTransformer_Num_encoder_layers(),
+ source,
+ new String[] {
+ "originalName", "num_encoder_layers " //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ addAnnotation
+ (getTransformer_Num_decoder_layers(),
+ source,
+ new String[] {
+ "originalName", "num_decoder_layers " //$NON-NLS-1$ //$NON-NLS-2$
+ });
+ }
+
+} //Transformer_layersPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layers_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layers_1Impl.java
new file mode 100644
index 0000000..fd8a9d3
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layers_1Impl.java
@@ -0,0 +1,397 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transformer layers 1</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_1Impl#getD_model <em>Dmodel</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_1Impl#getNhead <em>Nhead</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_1Impl#getDim_feedforward <em>Dim feedforward</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_1Impl#getDropout <em>Dropout</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_1Impl#getActivation <em>Activation</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Transformer_layers_1Impl extends Transformer_layersImpl implements Transformer_layers_1 {
+ /**
+ * The default value of the '{@link #getD_model() <em>Dmodel</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getD_model()
+ * @generated
+ * @ordered
+ */
+ protected static final int DMODEL_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getD_model() <em>Dmodel</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getD_model()
+ * @generated
+ * @ordered
+ */
+ protected int d_model = DMODEL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNhead() <em>Nhead</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNhead()
+ * @generated
+ * @ordered
+ */
+ protected static final int NHEAD_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNhead() <em>Nhead</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNhead()
+ * @generated
+ * @ordered
+ */
+ protected int nhead = NHEAD_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDim_feedforward() <em>Dim feedforward</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDim_feedforward()
+ * @generated
+ * @ordered
+ */
+ protected static final int DIM_FEEDFORWARD_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getDim_feedforward() <em>Dim feedforward</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDim_feedforward()
+ * @generated
+ * @ordered
+ */
+ protected int dim_feedforward = DIM_FEEDFORWARD_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDropout() <em>Dropout</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDropout()
+ * @generated
+ * @ordered
+ */
+ protected static final double DROPOUT_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getDropout() <em>Dropout</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDropout()
+ * @generated
+ * @ordered
+ */
+ protected double dropout = DROPOUT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getActivation() <em>Activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActivation()
+ * @generated
+ * @ordered
+ */
+ protected static final String ACTIVATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getActivation() <em>Activation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getActivation()
+ * @generated
+ * @ordered
+ */
+ protected String activation = ACTIVATION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Transformer_layers_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Transformer_layersPackage.Literals.TRANSFORMER_LAYERS_1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getD_model() {
+ return d_model;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setD_model(int newD_model) {
+ int oldD_model = d_model;
+ d_model = newD_model;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Transformer_layersPackage.TRANSFORMER_LAYERS_1__DMODEL, oldD_model, d_model));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getNhead() {
+ return nhead;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNhead(int newNhead) {
+ int oldNhead = nhead;
+ nhead = newNhead;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Transformer_layersPackage.TRANSFORMER_LAYERS_1__NHEAD, oldNhead, nhead));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getDim_feedforward() {
+ return dim_feedforward;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDim_feedforward(int newDim_feedforward) {
+ int oldDim_feedforward = dim_feedforward;
+ dim_feedforward = newDim_feedforward;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Transformer_layersPackage.TRANSFORMER_LAYERS_1__DIM_FEEDFORWARD, oldDim_feedforward, dim_feedforward));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public double getDropout() {
+ return dropout;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setDropout(double newDropout) {
+ double oldDropout = dropout;
+ dropout = newDropout;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Transformer_layersPackage.TRANSFORMER_LAYERS_1__DROPOUT, oldDropout, dropout));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getActivation() {
+ return activation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setActivation(String newActivation) {
+ String oldActivation = activation;
+ activation = newActivation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Transformer_layersPackage.TRANSFORMER_LAYERS_1__ACTIVATION, oldActivation, activation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__DMODEL:
+ return getD_model();
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__NHEAD:
+ return getNhead();
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__DIM_FEEDFORWARD:
+ return getDim_feedforward();
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__DROPOUT:
+ return getDropout();
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__ACTIVATION:
+ return getActivation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__DMODEL:
+ setD_model((Integer)newValue);
+ return;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__NHEAD:
+ setNhead((Integer)newValue);
+ return;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__DIM_FEEDFORWARD:
+ setDim_feedforward((Integer)newValue);
+ return;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__DROPOUT:
+ setDropout((Double)newValue);
+ return;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__ACTIVATION:
+ setActivation((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__DMODEL:
+ setD_model(DMODEL_EDEFAULT);
+ return;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__NHEAD:
+ setNhead(NHEAD_EDEFAULT);
+ return;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__DIM_FEEDFORWARD:
+ setDim_feedforward(DIM_FEEDFORWARD_EDEFAULT);
+ return;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__DROPOUT:
+ setDropout(DROPOUT_EDEFAULT);
+ return;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__ACTIVATION:
+ setActivation(ACTIVATION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__DMODEL:
+ return d_model != DMODEL_EDEFAULT;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__NHEAD:
+ return nhead != NHEAD_EDEFAULT;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__DIM_FEEDFORWARD:
+ return dim_feedforward != DIM_FEEDFORWARD_EDEFAULT;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__DROPOUT:
+ return dropout != DROPOUT_EDEFAULT;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1__ACTIVATION:
+ return ACTIVATION_EDEFAULT == null ? activation != null : !ACTIVATION_EDEFAULT.equals(activation);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (d_model: "); //$NON-NLS-1$
+ result.append(d_model);
+ result.append(", nhead: "); //$NON-NLS-1$
+ result.append(nhead);
+ result.append(", dim_feedforward: "); //$NON-NLS-1$
+ result.append(dim_feedforward);
+ result.append(", dropout: "); //$NON-NLS-1$
+ result.append(dropout);
+ result.append(", activation: "); //$NON-NLS-1$
+ result.append(activation);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Transformer_layers_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layers_2Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layers_2Impl.java
new file mode 100644
index 0000000..d1c9243
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/impl/Transformer_layers_2Impl.java
@@ -0,0 +1,238 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.LayerNorm;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_2;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transformer layers 2</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_2Impl#getNum_layers <em>Num layers</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layers_2Impl#getNorm <em>Norm</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Transformer_layers_2Impl extends Transformer_layersImpl implements Transformer_layers_2 {
+ /**
+ * The default value of the '{@link #getNum_layers() <em>Num layers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_layers()
+ * @generated
+ * @ordered
+ */
+ protected static final int NUM_LAYERS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getNum_layers() <em>Num layers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNum_layers()
+ * @generated
+ * @ordered
+ */
+ protected int num_layers = NUM_LAYERS_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getNorm() <em>Norm</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNorm()
+ * @generated
+ * @ordered
+ */
+ protected LayerNorm norm;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Transformer_layers_2Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Transformer_layersPackage.Literals.TRANSFORMER_LAYERS_2;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getNum_layers() {
+ return num_layers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNum_layers(int newNum_layers) {
+ int oldNum_layers = num_layers;
+ num_layers = newNum_layers;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Transformer_layersPackage.TRANSFORMER_LAYERS_2__NUM_LAYERS, oldNum_layers, num_layers));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public LayerNorm getNorm() {
+ if (norm != null && norm.eIsProxy()) {
+ InternalEObject oldNorm = (InternalEObject)norm;
+ norm = (LayerNorm)eResolveProxy(oldNorm);
+ if (norm != oldNorm) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, Transformer_layersPackage.TRANSFORMER_LAYERS_2__NORM, oldNorm, norm));
+ }
+ }
+ return norm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LayerNorm basicGetNorm() {
+ return norm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setNorm(LayerNorm newNorm) {
+ LayerNorm oldNorm = norm;
+ norm = newNorm;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Transformer_layersPackage.TRANSFORMER_LAYERS_2__NORM, oldNorm, norm));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_2__NUM_LAYERS:
+ return getNum_layers();
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_2__NORM:
+ if (resolve) return getNorm();
+ return basicGetNorm();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_2__NUM_LAYERS:
+ setNum_layers((Integer)newValue);
+ return;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_2__NORM:
+ setNorm((LayerNorm)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_2__NUM_LAYERS:
+ setNum_layers(NUM_LAYERS_EDEFAULT);
+ return;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_2__NORM:
+ setNorm((LayerNorm)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_2__NUM_LAYERS:
+ return num_layers != NUM_LAYERS_EDEFAULT;
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_2__NORM:
+ return norm != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (num_layers: "); //$NON-NLS-1$
+ result.append(num_layers);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Transformer_layers_2Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/util/Transformer_layersAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/util/Transformer_layersAdapterFactory.java
new file mode 100644
index 0000000..1692615
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/util/Transformer_layersAdapterFactory.java
@@ -0,0 +1,273 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage
+ * @generated
+ */
+public class Transformer_layersAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Transformer_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Transformer_layersAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Transformer_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Transformer_layersSwitch<Adapter> modelSwitch =
+ new Transformer_layersSwitch<Adapter>() {
+ @Override
+ public Adapter caseTransformer_layers(Transformer_layers object) {
+ return createTransformer_layersAdapter();
+ }
+ @Override
+ public Adapter caseTransformer_layers_1(Transformer_layers_1 object) {
+ return createTransformer_layers_1Adapter();
+ }
+ @Override
+ public Adapter caseTransformer_layers_2(Transformer_layers_2 object) {
+ return createTransformer_layers_2Adapter();
+ }
+ @Override
+ public Adapter caseTransformer(Transformer object) {
+ return createTransformerAdapter();
+ }
+ @Override
+ public Adapter caseTransformerEncoder(TransformerEncoder object) {
+ return createTransformerEncoderAdapter();
+ }
+ @Override
+ public Adapter caseTransformerEncoderLayer(TransformerEncoderLayer object) {
+ return createTransformerEncoderLayerAdapter();
+ }
+ @Override
+ public Adapter caseTransformerDecoder(TransformerDecoder object) {
+ return createTransformerDecoderAdapter();
+ }
+ @Override
+ public Adapter caseTransformerDecoderLayer(TransformerDecoderLayer object) {
+ return createTransformerDecoderLayerAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers <em>Transformer layers</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers
+ * @generated
+ */
+ public Adapter createTransformer_layersAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1 <em>Transformer layers 1</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_1
+ * @generated
+ */
+ public Adapter createTransformer_layers_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_2 <em>Transformer layers 2</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layers_2
+ * @generated
+ */
+ public Adapter createTransformer_layers_2Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer <em>Transformer</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer
+ * @generated
+ */
+ public Adapter createTransformerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoder <em>Transformer Encoder</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoder
+ * @generated
+ */
+ public Adapter createTransformerEncoderAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoderLayer <em>Transformer Encoder Layer</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerEncoderLayer
+ * @generated
+ */
+ public Adapter createTransformerEncoderLayerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoder <em>Transformer Decoder</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoder
+ * @generated
+ */
+ public Adapter createTransformerDecoderAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoderLayer <em>Transformer Decoder Layer</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.TransformerDecoderLayer
+ * @generated
+ */
+ public Adapter createTransformerDecoderLayerAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Transformer_layersAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/util/Transformer_layersSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/util/Transformer_layersSwitch.java
new file mode 100644
index 0000000..982c1fb
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Transformer_layers/util/Transformer_layersSwitch.java
@@ -0,0 +1,301 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage
+ * @generated
+ */
+public class Transformer_layersSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Transformer_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Transformer_layersSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Transformer_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Transformer_layersPackage.TRANSFORMER_LAYERS: {
+ Transformer_layers transformer_layers = (Transformer_layers)theEObject;
+ T result = caseTransformer_layers(transformer_layers);
+ if (result == null) result = caseModel(transformer_layers);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_1: {
+ Transformer_layers_1 transformer_layers_1 = (Transformer_layers_1)theEObject;
+ T result = caseTransformer_layers_1(transformer_layers_1);
+ if (result == null) result = caseTransformer_layers(transformer_layers_1);
+ if (result == null) result = caseModel(transformer_layers_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Transformer_layersPackage.TRANSFORMER_LAYERS_2: {
+ Transformer_layers_2 transformer_layers_2 = (Transformer_layers_2)theEObject;
+ T result = caseTransformer_layers_2(transformer_layers_2);
+ if (result == null) result = caseTransformer_layers(transformer_layers_2);
+ if (result == null) result = caseModel(transformer_layers_2);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Transformer_layersPackage.TRANSFORMER: {
+ Transformer transformer = (Transformer)theEObject;
+ T result = caseTransformer(transformer);
+ if (result == null) result = caseTransformer_layers_1(transformer);
+ if (result == null) result = caseTransformer_layers(transformer);
+ if (result == null) result = caseModel(transformer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Transformer_layersPackage.TRANSFORMER_ENCODER: {
+ TransformerEncoder transformerEncoder = (TransformerEncoder)theEObject;
+ T result = caseTransformerEncoder(transformerEncoder);
+ if (result == null) result = caseTransformer_layers_2(transformerEncoder);
+ if (result == null) result = caseTransformer_layers(transformerEncoder);
+ if (result == null) result = caseModel(transformerEncoder);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Transformer_layersPackage.TRANSFORMER_ENCODER_LAYER: {
+ TransformerEncoderLayer transformerEncoderLayer = (TransformerEncoderLayer)theEObject;
+ T result = caseTransformerEncoderLayer(transformerEncoderLayer);
+ if (result == null) result = caseTransformer_layers_1(transformerEncoderLayer);
+ if (result == null) result = caseTransformer_layers(transformerEncoderLayer);
+ if (result == null) result = caseModel(transformerEncoderLayer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Transformer_layersPackage.TRANSFORMER_DECODER: {
+ TransformerDecoder transformerDecoder = (TransformerDecoder)theEObject;
+ T result = caseTransformerDecoder(transformerDecoder);
+ if (result == null) result = caseTransformer_layers_2(transformerDecoder);
+ if (result == null) result = caseTransformer_layers(transformerDecoder);
+ if (result == null) result = caseModel(transformerDecoder);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Transformer_layersPackage.TRANSFORMER_DECODER_LAYER: {
+ TransformerDecoderLayer transformerDecoderLayer = (TransformerDecoderLayer)theEObject;
+ T result = caseTransformerDecoderLayer(transformerDecoderLayer);
+ if (result == null) result = caseTransformer_layers_1(transformerDecoderLayer);
+ if (result == null) result = caseTransformer_layers(transformerDecoderLayer);
+ if (result == null) result = caseModel(transformerDecoderLayer);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transformer layers</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Transformer layers</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransformer_layers(Transformer_layers object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transformer layers 1</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Transformer layers 1</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransformer_layers_1(Transformer_layers_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transformer layers 2</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Transformer layers 2</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransformer_layers_2(Transformer_layers_2 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transformer</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Transformer</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransformer(Transformer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transformer Encoder</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Transformer Encoder</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransformerEncoder(TransformerEncoder object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transformer Encoder Layer</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Transformer Encoder Layer</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransformerEncoderLayer(TransformerEncoderLayer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transformer Decoder</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Transformer Decoder</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransformerDecoder(TransformerDecoder object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Transformer Decoder Layer</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Transformer Decoder Layer</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTransformerDecoderLayer(TransformerDecoderLayer object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Transformer_layersSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/PixelShuffle.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/PixelShuffle.java
new file mode 100644
index 0000000..d7a0bf9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/PixelShuffle.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Pixel Shuffle</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.PixelShuffle#getUpscale_factor <em>Upscale factor</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage#getPixelShuffle()
+ * @model
+ * @generated
+ */
+public interface PixelShuffle extends Vision_layers {
+ /**
+ * Returns the value of the '<em><b>Upscale factor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Upscale factor</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Upscale factor</em>' attribute.
+ * @see #setUpscale_factor(int)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage#getPixelShuffle_Upscale_factor()
+ * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+ * @generated
+ */
+ int getUpscale_factor();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.PixelShuffle#getUpscale_factor <em>Upscale factor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Upscale factor</em>' attribute.
+ * @see #getUpscale_factor()
+ * @generated
+ */
+ void setUpscale_factor(int value);
+
+} // PixelShuffle
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Upsample.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Upsample.java
new file mode 100644
index 0000000..d37071c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Upsample.java
@@ -0,0 +1,85 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Upsample</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Upsample#getMode <em>Mode</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Upsample#isAlign_corners <em>Align corners</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage#getUpsample()
+ * @model
+ * @generated
+ */
+public interface Upsample extends Vision_layers_1 {
+ /**
+ * Returns the value of the '<em><b>Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mode</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mode</em>' attribute.
+ * @see #setMode(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage#getUpsample_Mode()
+ * @model dataType="org.eclipse.uml2.types.String" ordered="false"
+ * @generated
+ */
+ String getMode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Upsample#getMode <em>Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mode</em>' attribute.
+ * @see #getMode()
+ * @generated
+ */
+ void setMode(String value);
+
+ /**
+ * Returns the value of the '<em><b>Align corners</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Align corners</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Align corners</em>' attribute.
+ * @see #setAlign_corners(boolean)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage#getUpsample_Align_corners()
+ * @model dataType="org.eclipse.uml2.types.Boolean" ordered="false"
+ * @generated
+ */
+ boolean isAlign_corners();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Upsample#isAlign_corners <em>Align corners</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Align corners</em>' attribute.
+ * @see #isAlign_corners()
+ * @generated
+ */
+ void setAlign_corners(boolean value);
+
+} // Upsample
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/UpsamplingBilinear2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/UpsamplingBilinear2d.java
new file mode 100644
index 0000000..191e5e0
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/UpsamplingBilinear2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Upsampling Bilinear2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage#getUpsamplingBilinear2d()
+ * @model
+ * @generated
+ */
+public interface UpsamplingBilinear2d extends Vision_layers_1 {
+} // UpsamplingBilinear2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/UpsamplingNearest2d.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/UpsamplingNearest2d.java
new file mode 100644
index 0000000..24f21e2
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/UpsamplingNearest2d.java
@@ -0,0 +1,26 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Upsampling Nearest2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage#getUpsamplingNearest2d()
+ * @model
+ * @generated
+ */
+public interface UpsamplingNearest2d extends Vision_layers_1 {
+} // UpsamplingNearest2d
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Vision_layers.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Vision_layers.java
new file mode 100644
index 0000000..151ed92
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Vision_layers.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Vision layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage#getVision_layers()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Vision_layers extends Model {
+} // Vision_layers
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Vision_layersFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Vision_layersFactory.java
new file mode 100644
index 0000000..66ec22e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Vision_layersFactory.java
@@ -0,0 +1,78 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage
+ * @generated
+ */
+public interface Vision_layersFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Vision_layersFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Pixel Shuffle</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Pixel Shuffle</em>'.
+ * @generated
+ */
+ PixelShuffle createPixelShuffle();
+
+ /**
+ * Returns a new object of class '<em>Upsample</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Upsample</em>'.
+ * @generated
+ */
+ Upsample createUpsample();
+
+ /**
+ * Returns a new object of class '<em>Upsampling Nearest2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Upsampling Nearest2d</em>'.
+ * @generated
+ */
+ UpsamplingNearest2d createUpsamplingNearest2d();
+
+ /**
+ * Returns a new object of class '<em>Upsampling Bilinear2d</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Upsampling Bilinear2d</em>'.
+ * @generated
+ */
+ UpsamplingBilinear2d createUpsamplingBilinear2d();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ Vision_layersPackage getVision_layersPackage();
+
+} //Vision_layersFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Vision_layersPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Vision_layersPackage.java
new file mode 100644
index 0000000..46b6fba
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Vision_layersPackage.java
@@ -0,0 +1,955 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface Vision_layersPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "Vision_layers"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/AIML/vision/1"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.Vision_layers"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ Vision_layersPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersImpl <em>Vision layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl#getVision_layers()
+ * @generated
+ */
+ int VISION_LAYERS = 0;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS__BASE_CLASS = ModulePackage.MODEL__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS__NAME = ModulePackage.MODEL__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS__DATA = ModulePackage.MODEL__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS__REQUIRES_GRAD = ModulePackage.MODEL__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS__SUB_MODULE = ModulePackage.MODEL__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS__OPTIMIZER = ModulePackage.MODEL__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS__LOSS = ModulePackage.MODEL__LOSS;
+
+ /**
+ * The number of structural features of the '<em>Vision layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS_FEATURE_COUNT = ModulePackage.MODEL_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Vision layers</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS_OPERATION_COUNT = ModulePackage.MODEL_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layers_1Impl <em>Vision layers 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layers_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl#getVision_layers_1()
+ * @generated
+ */
+ int VISION_LAYERS_1 = 1;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS_1__BASE_CLASS = VISION_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS_1__NAME = VISION_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS_1__DATA = VISION_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS_1__REQUIRES_GRAD = VISION_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS_1__SUB_MODULE = VISION_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS_1__OPTIMIZER = VISION_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS_1__LOSS = VISION_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS_1__SIZE = VISION_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Scale factor</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS_1__SCALE_FACTOR = VISION_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Vision layers 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS_1_FEATURE_COUNT = VISION_LAYERS_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Vision layers 1</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int VISION_LAYERS_1_OPERATION_COUNT = VISION_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.PixelShuffleImpl <em>Pixel Shuffle</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.PixelShuffleImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl#getPixelShuffle()
+ * @generated
+ */
+ int PIXEL_SHUFFLE = 2;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PIXEL_SHUFFLE__BASE_CLASS = VISION_LAYERS__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PIXEL_SHUFFLE__NAME = VISION_LAYERS__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PIXEL_SHUFFLE__DATA = VISION_LAYERS__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PIXEL_SHUFFLE__REQUIRES_GRAD = VISION_LAYERS__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PIXEL_SHUFFLE__SUB_MODULE = VISION_LAYERS__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PIXEL_SHUFFLE__OPTIMIZER = VISION_LAYERS__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PIXEL_SHUFFLE__LOSS = VISION_LAYERS__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Upscale factor</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PIXEL_SHUFFLE__UPSCALE_FACTOR = VISION_LAYERS_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Pixel Shuffle</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PIXEL_SHUFFLE_FEATURE_COUNT = VISION_LAYERS_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the '<em>Pixel Shuffle</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PIXEL_SHUFFLE_OPERATION_COUNT = VISION_LAYERS_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.UpsampleImpl <em>Upsample</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.UpsampleImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl#getUpsample()
+ * @generated
+ */
+ int UPSAMPLE = 3;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLE__BASE_CLASS = VISION_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLE__NAME = VISION_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLE__DATA = VISION_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLE__REQUIRES_GRAD = VISION_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLE__SUB_MODULE = VISION_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLE__OPTIMIZER = VISION_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLE__LOSS = VISION_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLE__SIZE = VISION_LAYERS_1__SIZE;
+
+ /**
+ * The feature id for the '<em><b>Scale factor</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLE__SCALE_FACTOR = VISION_LAYERS_1__SCALE_FACTOR;
+
+ /**
+ * The feature id for the '<em><b>Mode</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLE__MODE = VISION_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Align corners</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLE__ALIGN_CORNERS = VISION_LAYERS_1_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Upsample</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLE_FEATURE_COUNT = VISION_LAYERS_1_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the '<em>Upsample</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLE_OPERATION_COUNT = VISION_LAYERS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.UpsamplingNearest2dImpl <em>Upsampling Nearest2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.UpsamplingNearest2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl#getUpsamplingNearest2d()
+ * @generated
+ */
+ int UPSAMPLING_NEAREST2D = 4;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_NEAREST2D__BASE_CLASS = VISION_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_NEAREST2D__NAME = VISION_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_NEAREST2D__DATA = VISION_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_NEAREST2D__REQUIRES_GRAD = VISION_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_NEAREST2D__SUB_MODULE = VISION_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_NEAREST2D__OPTIMIZER = VISION_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_NEAREST2D__LOSS = VISION_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_NEAREST2D__SIZE = VISION_LAYERS_1__SIZE;
+
+ /**
+ * The feature id for the '<em><b>Scale factor</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_NEAREST2D__SCALE_FACTOR = VISION_LAYERS_1__SCALE_FACTOR;
+
+ /**
+ * The number of structural features of the '<em>Upsampling Nearest2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_NEAREST2D_FEATURE_COUNT = VISION_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Upsampling Nearest2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_NEAREST2D_OPERATION_COUNT = VISION_LAYERS_1_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.UpsamplingBilinear2dImpl <em>Upsampling Bilinear2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.UpsamplingBilinear2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl#getUpsamplingBilinear2d()
+ * @generated
+ */
+ int UPSAMPLING_BILINEAR2D = 5;
+
+ /**
+ * The feature id for the '<em><b>Base Class</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_BILINEAR2D__BASE_CLASS = VISION_LAYERS_1__BASE_CLASS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_BILINEAR2D__NAME = VISION_LAYERS_1__NAME;
+
+ /**
+ * The feature id for the '<em><b>Data</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_BILINEAR2D__DATA = VISION_LAYERS_1__DATA;
+
+ /**
+ * The feature id for the '<em><b>Requires grad</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_BILINEAR2D__REQUIRES_GRAD = VISION_LAYERS_1__REQUIRES_GRAD;
+
+ /**
+ * The feature id for the '<em><b>Sub Module</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_BILINEAR2D__SUB_MODULE = VISION_LAYERS_1__SUB_MODULE;
+
+ /**
+ * The feature id for the '<em><b>Optimizer</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_BILINEAR2D__OPTIMIZER = VISION_LAYERS_1__OPTIMIZER;
+
+ /**
+ * The feature id for the '<em><b>Loss</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_BILINEAR2D__LOSS = VISION_LAYERS_1__LOSS;
+
+ /**
+ * The feature id for the '<em><b>Size</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_BILINEAR2D__SIZE = VISION_LAYERS_1__SIZE;
+
+ /**
+ * The feature id for the '<em><b>Scale factor</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_BILINEAR2D__SCALE_FACTOR = VISION_LAYERS_1__SCALE_FACTOR;
+
+ /**
+ * The number of structural features of the '<em>Upsampling Bilinear2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_BILINEAR2D_FEATURE_COUNT = VISION_LAYERS_1_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the '<em>Upsampling Bilinear2d</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UPSAMPLING_BILINEAR2D_OPERATION_COUNT = VISION_LAYERS_1_OPERATION_COUNT + 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers <em>Vision layers</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Vision layers</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers
+ * @generated
+ */
+ EClass getVision_layers();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers_1 <em>Vision layers 1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Vision layers 1</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers_1
+ * @generated
+ */
+ EClass getVision_layers_1();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers_1#getSize <em>Size</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Size</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers_1#getSize()
+ * @see #getVision_layers_1()
+ * @generated
+ */
+ EAttribute getVision_layers_1_Size();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers_1#getScale_factor <em>Scale factor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Scale factor</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers_1#getScale_factor()
+ * @see #getVision_layers_1()
+ * @generated
+ */
+ EAttribute getVision_layers_1_Scale_factor();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.PixelShuffle <em>Pixel Shuffle</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Pixel Shuffle</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.PixelShuffle
+ * @generated
+ */
+ EClass getPixelShuffle();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.PixelShuffle#getUpscale_factor <em>Upscale factor</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Upscale factor</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.PixelShuffle#getUpscale_factor()
+ * @see #getPixelShuffle()
+ * @generated
+ */
+ EAttribute getPixelShuffle_Upscale_factor();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Upsample <em>Upsample</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Upsample</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Upsample
+ * @generated
+ */
+ EClass getUpsample();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Upsample#getMode <em>Mode</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Mode</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Upsample#getMode()
+ * @see #getUpsample()
+ * @generated
+ */
+ EAttribute getUpsample_Mode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Upsample#isAlign_corners <em>Align corners</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Align corners</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Upsample#isAlign_corners()
+ * @see #getUpsample()
+ * @generated
+ */
+ EAttribute getUpsample_Align_corners();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.UpsamplingNearest2d <em>Upsampling Nearest2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Upsampling Nearest2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.UpsamplingNearest2d
+ * @generated
+ */
+ EClass getUpsamplingNearest2d();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.UpsamplingBilinear2d <em>Upsampling Bilinear2d</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Upsampling Bilinear2d</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.UpsamplingBilinear2d
+ * @generated
+ */
+ EClass getUpsamplingBilinear2d();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ Vision_layersFactory getVision_layersFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersImpl <em>Vision layers</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl#getVision_layers()
+ * @generated
+ */
+ EClass VISION_LAYERS = eINSTANCE.getVision_layers();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layers_1Impl <em>Vision layers 1</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layers_1Impl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl#getVision_layers_1()
+ * @generated
+ */
+ EClass VISION_LAYERS_1 = eINSTANCE.getVision_layers_1();
+
+ /**
+ * The meta object literal for the '<em><b>Size</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VISION_LAYERS_1__SIZE = eINSTANCE.getVision_layers_1_Size();
+
+ /**
+ * The meta object literal for the '<em><b>Scale factor</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute VISION_LAYERS_1__SCALE_FACTOR = eINSTANCE.getVision_layers_1_Scale_factor();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.PixelShuffleImpl <em>Pixel Shuffle</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.PixelShuffleImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl#getPixelShuffle()
+ * @generated
+ */
+ EClass PIXEL_SHUFFLE = eINSTANCE.getPixelShuffle();
+
+ /**
+ * The meta object literal for the '<em><b>Upscale factor</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PIXEL_SHUFFLE__UPSCALE_FACTOR = eINSTANCE.getPixelShuffle_Upscale_factor();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.UpsampleImpl <em>Upsample</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.UpsampleImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl#getUpsample()
+ * @generated
+ */
+ EClass UPSAMPLE = eINSTANCE.getUpsample();
+
+ /**
+ * The meta object literal for the '<em><b>Mode</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute UPSAMPLE__MODE = eINSTANCE.getUpsample_Mode();
+
+ /**
+ * The meta object literal for the '<em><b>Align corners</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute UPSAMPLE__ALIGN_CORNERS = eINSTANCE.getUpsample_Align_corners();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.UpsamplingNearest2dImpl <em>Upsampling Nearest2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.UpsamplingNearest2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl#getUpsamplingNearest2d()
+ * @generated
+ */
+ EClass UPSAMPLING_NEAREST2D = eINSTANCE.getUpsamplingNearest2d();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.UpsamplingBilinear2dImpl <em>Upsampling Bilinear2d</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.UpsamplingBilinear2dImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl#getUpsamplingBilinear2d()
+ * @generated
+ */
+ EClass UPSAMPLING_BILINEAR2D = eINSTANCE.getUpsamplingBilinear2d();
+
+ }
+
+} //Vision_layersPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Vision_layers_1.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Vision_layers_1.java
new file mode 100644
index 0000000..5f58e4c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/Vision_layers_1.java
@@ -0,0 +1,66 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Vision layers 1</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers_1#getSize <em>Size</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers_1#getScale_factor <em>Scale factor</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage#getVision_layers_1()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Vision_layers_1 extends Vision_layers {
+ /**
+ * Returns the value of the '<em><b>Size</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Integer}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Size</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Size</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage#getVision_layers_1_Size()
+ * @model dataType="org.eclipse.uml2.types.Integer" ordered="false"
+ * @generated
+ */
+ EList<Integer> getSize();
+
+ /**
+ * Returns the value of the '<em><b>Scale factor</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.Double}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Scale factor</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Scale factor</em>' attribute list.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage#getVision_layers_1_Scale_factor()
+ * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+ * @generated
+ */
+ EList<Double> getScale_factor();
+
+} // Vision_layers_1
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/PixelShuffleImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/PixelShuffleImpl.java
new file mode 100644
index 0000000..2743276
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/PixelShuffleImpl.java
@@ -0,0 +1,173 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.PixelShuffle;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Pixel Shuffle</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.PixelShuffleImpl#getUpscale_factor <em>Upscale factor</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PixelShuffleImpl extends Vision_layersImpl implements PixelShuffle {
+ /**
+ * The default value of the '{@link #getUpscale_factor() <em>Upscale factor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpscale_factor()
+ * @generated
+ * @ordered
+ */
+ protected static final int UPSCALE_FACTOR_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getUpscale_factor() <em>Upscale factor</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpscale_factor()
+ * @generated
+ * @ordered
+ */
+ protected int upscale_factor = UPSCALE_FACTOR_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PixelShuffleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Vision_layersPackage.Literals.PIXEL_SHUFFLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int getUpscale_factor() {
+ return upscale_factor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setUpscale_factor(int newUpscale_factor) {
+ int oldUpscale_factor = upscale_factor;
+ upscale_factor = newUpscale_factor;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Vision_layersPackage.PIXEL_SHUFFLE__UPSCALE_FACTOR, oldUpscale_factor, upscale_factor));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Vision_layersPackage.PIXEL_SHUFFLE__UPSCALE_FACTOR:
+ return getUpscale_factor();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Vision_layersPackage.PIXEL_SHUFFLE__UPSCALE_FACTOR:
+ setUpscale_factor((Integer)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Vision_layersPackage.PIXEL_SHUFFLE__UPSCALE_FACTOR:
+ setUpscale_factor(UPSCALE_FACTOR_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Vision_layersPackage.PIXEL_SHUFFLE__UPSCALE_FACTOR:
+ return upscale_factor != UPSCALE_FACTOR_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (upscale_factor: "); //$NON-NLS-1$
+ result.append(upscale_factor);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PixelShuffleImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/UpsampleImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/UpsampleImpl.java
new file mode 100644
index 0000000..70568c6
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/UpsampleImpl.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Upsample;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Upsample</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.UpsampleImpl#getMode <em>Mode</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.UpsampleImpl#isAlign_corners <em>Align corners</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class UpsampleImpl extends Vision_layers_1Impl implements Upsample {
+ /**
+ * The default value of the '{@link #getMode() <em>Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMode()
+ * @generated
+ * @ordered
+ */
+ protected static final String MODE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getMode() <em>Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMode()
+ * @generated
+ * @ordered
+ */
+ protected String mode = MODE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isAlign_corners() <em>Align corners</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAlign_corners()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ALIGN_CORNERS_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isAlign_corners() <em>Align corners</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAlign_corners()
+ * @generated
+ * @ordered
+ */
+ protected boolean align_corners = ALIGN_CORNERS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UpsampleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Vision_layersPackage.Literals.UPSAMPLE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getMode() {
+ return mode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setMode(String newMode) {
+ String oldMode = mode;
+ mode = newMode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Vision_layersPackage.UPSAMPLE__MODE, oldMode, mode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isAlign_corners() {
+ return align_corners;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setAlign_corners(boolean newAlign_corners) {
+ boolean oldAlign_corners = align_corners;
+ align_corners = newAlign_corners;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, Vision_layersPackage.UPSAMPLE__ALIGN_CORNERS, oldAlign_corners, align_corners));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Vision_layersPackage.UPSAMPLE__MODE:
+ return getMode();
+ case Vision_layersPackage.UPSAMPLE__ALIGN_CORNERS:
+ return isAlign_corners();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Vision_layersPackage.UPSAMPLE__MODE:
+ setMode((String)newValue);
+ return;
+ case Vision_layersPackage.UPSAMPLE__ALIGN_CORNERS:
+ setAlign_corners((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Vision_layersPackage.UPSAMPLE__MODE:
+ setMode(MODE_EDEFAULT);
+ return;
+ case Vision_layersPackage.UPSAMPLE__ALIGN_CORNERS:
+ setAlign_corners(ALIGN_CORNERS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Vision_layersPackage.UPSAMPLE__MODE:
+ return MODE_EDEFAULT == null ? mode != null : !MODE_EDEFAULT.equals(mode);
+ case Vision_layersPackage.UPSAMPLE__ALIGN_CORNERS:
+ return align_corners != ALIGN_CORNERS_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (mode: "); //$NON-NLS-1$
+ result.append(mode);
+ result.append(", align_corners: "); //$NON-NLS-1$
+ result.append(align_corners);
+ result.append(')');
+ return result.toString();
+ }
+
+} //UpsampleImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/UpsamplingBilinear2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/UpsamplingBilinear2dImpl.java
new file mode 100644
index 0000000..74596b1
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/UpsamplingBilinear2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.UpsamplingBilinear2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Upsampling Bilinear2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class UpsamplingBilinear2dImpl extends Vision_layers_1Impl implements UpsamplingBilinear2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UpsamplingBilinear2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Vision_layersPackage.Literals.UPSAMPLING_BILINEAR2D;
+ }
+
+} //UpsamplingBilinear2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/UpsamplingNearest2dImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/UpsamplingNearest2dImpl.java
new file mode 100644
index 0000000..f17ddc6
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/UpsamplingNearest2dImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.UpsamplingNearest2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Upsampling Nearest2d</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class UpsamplingNearest2dImpl extends Vision_layers_1Impl implements UpsamplingNearest2d {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UpsamplingNearest2dImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Vision_layersPackage.Literals.UPSAMPLING_NEAREST2D;
+ }
+
+} //UpsamplingNearest2dImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/Vision_layersFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/Vision_layersFactoryImpl.java
new file mode 100644
index 0000000..0653e74
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/Vision_layersFactoryImpl.java
@@ -0,0 +1,142 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Vision_layersFactoryImpl extends EFactoryImpl implements Vision_layersFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Vision_layersFactory init() {
+ try {
+ Vision_layersFactory theVision_layersFactory = (Vision_layersFactory)EPackage.Registry.INSTANCE.getEFactory(Vision_layersPackage.eNS_URI);
+ if (theVision_layersFactory != null) {
+ return theVision_layersFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new Vision_layersFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Vision_layersFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case Vision_layersPackage.PIXEL_SHUFFLE: return createPixelShuffle();
+ case Vision_layersPackage.UPSAMPLE: return createUpsample();
+ case Vision_layersPackage.UPSAMPLING_NEAREST2D: return createUpsamplingNearest2d();
+ case Vision_layersPackage.UPSAMPLING_BILINEAR2D: return createUpsamplingBilinear2d();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public PixelShuffle createPixelShuffle() {
+ PixelShuffleImpl pixelShuffle = new PixelShuffleImpl();
+ return pixelShuffle;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Upsample createUpsample() {
+ UpsampleImpl upsample = new UpsampleImpl();
+ return upsample;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public UpsamplingNearest2d createUpsamplingNearest2d() {
+ UpsamplingNearest2dImpl upsamplingNearest2d = new UpsamplingNearest2dImpl();
+ return upsamplingNearest2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public UpsamplingBilinear2d createUpsamplingBilinear2d() {
+ UpsamplingBilinear2dImpl upsamplingBilinear2d = new UpsamplingBilinear2dImpl();
+ return upsamplingBilinear2d;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Vision_layersPackage getVision_layersPackage() {
+ return (Vision_layersPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static Vision_layersPackage getPackage() {
+ return Vision_layersPackage.eINSTANCE;
+ }
+
+} //Vision_layersFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/Vision_layersImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/Vision_layersImpl.java
new file mode 100644
index 0000000..5286875
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/Vision_layersImpl.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModelImpl;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Vision layers</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public abstract class Vision_layersImpl extends ModelImpl implements Vision_layers {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Vision_layersImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Vision_layersPackage.Literals.VISION_LAYERS;
+ }
+
+} //Vision_layersImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/Vision_layersPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/Vision_layersPackageImpl.java
new file mode 100644
index 0000000..fb19032
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/Vision_layersPackageImpl.java
@@ -0,0 +1,534 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.PixelShuffle;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Upsample;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.UpsamplingBilinear2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.UpsamplingNearest2d;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers_1;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class Vision_layersPackageImpl extends EPackageImpl implements Vision_layersPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass vision_layersEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass vision_layers_1EClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pixelShuffleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass upsampleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass upsamplingNearest2dEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass upsamplingBilinear2dEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private Vision_layersPackageImpl() {
+ super(eNS_URI, Vision_layersFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link Vision_layersPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static Vision_layersPackage init() {
+ if (isInited) return (Vision_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredVision_layersPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = registeredVision_layersPackage instanceof Vision_layersPackageImpl ? (Vision_layersPackageImpl)registeredVision_layersPackage : new Vision_layersPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theVision_layersPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theVision_layersPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theVision_layersPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(Vision_layersPackage.eNS_URI, theVision_layersPackage);
+ return theVision_layersPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getVision_layers() {
+ return vision_layersEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getVision_layers_1() {
+ return vision_layers_1EClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getVision_layers_1_Size() {
+ return (EAttribute)vision_layers_1EClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getVision_layers_1_Scale_factor() {
+ return (EAttribute)vision_layers_1EClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getPixelShuffle() {
+ return pixelShuffleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getPixelShuffle_Upscale_factor() {
+ return (EAttribute)pixelShuffleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getUpsample() {
+ return upsampleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getUpsample_Mode() {
+ return (EAttribute)upsampleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getUpsample_Align_corners() {
+ return (EAttribute)upsampleEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getUpsamplingNearest2d() {
+ return upsamplingNearest2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getUpsamplingBilinear2d() {
+ return upsamplingBilinear2dEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Vision_layersFactory getVision_layersFactory() {
+ return (Vision_layersFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ vision_layersEClass = createEClass(VISION_LAYERS);
+
+ vision_layers_1EClass = createEClass(VISION_LAYERS_1);
+ createEAttribute(vision_layers_1EClass, VISION_LAYERS_1__SIZE);
+ createEAttribute(vision_layers_1EClass, VISION_LAYERS_1__SCALE_FACTOR);
+
+ pixelShuffleEClass = createEClass(PIXEL_SHUFFLE);
+ createEAttribute(pixelShuffleEClass, PIXEL_SHUFFLE__UPSCALE_FACTOR);
+
+ upsampleEClass = createEClass(UPSAMPLE);
+ createEAttribute(upsampleEClass, UPSAMPLE__MODE);
+ createEAttribute(upsampleEClass, UPSAMPLE__ALIGN_CORNERS);
+
+ upsamplingNearest2dEClass = createEClass(UPSAMPLING_NEAREST2D);
+
+ upsamplingBilinear2dEClass = createEClass(UPSAMPLING_BILINEAR2D);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ vision_layersEClass.getESuperTypes().add(theModulePackage.getModel());
+ vision_layers_1EClass.getESuperTypes().add(this.getVision_layers());
+ pixelShuffleEClass.getESuperTypes().add(this.getVision_layers());
+ upsampleEClass.getESuperTypes().add(this.getVision_layers_1());
+ upsamplingNearest2dEClass.getESuperTypes().add(this.getVision_layers_1());
+ upsamplingBilinear2dEClass.getESuperTypes().add(this.getVision_layers_1());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(vision_layersEClass, Vision_layers.class, "Vision_layers", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(vision_layers_1EClass, Vision_layers_1.class, "Vision_layers_1", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getVision_layers_1_Size(), theTypesPackage.getInteger(), "size", null, 0, -1, Vision_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getVision_layers_1_Scale_factor(), theTypesPackage.getReal(), "scale_factor", null, 0, -1, Vision_layers_1.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(pixelShuffleEClass, PixelShuffle.class, "PixelShuffle", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getPixelShuffle_Upscale_factor(), theTypesPackage.getInteger(), "upscale_factor", null, 1, 1, PixelShuffle.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(upsampleEClass, Upsample.class, "Upsample", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getUpsample_Mode(), theTypesPackage.getString(), "mode", null, 0, 1, Upsample.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(getUpsample_Align_corners(), theTypesPackage.getBoolean(), "align_corners", null, 0, 1, Upsample.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(upsamplingNearest2dEClass, UpsamplingNearest2d.class, "UpsamplingNearest2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(upsamplingBilinear2dEClass, UpsamplingBilinear2d.class, "UpsamplingBilinear2d", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ }
+
+} //Vision_layersPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/Vision_layers_1Impl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/Vision_layers_1Impl.java
new file mode 100644
index 0000000..f737c3c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/impl/Vision_layers_1Impl.java
@@ -0,0 +1,194 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers_1;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Vision layers 1</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layers_1Impl#getSize <em>Size</em>}</li>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layers_1Impl#getScale_factor <em>Scale factor</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class Vision_layers_1Impl extends Vision_layersImpl implements Vision_layers_1 {
+ /**
+ * The cached value of the '{@link #getSize() <em>Size</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSize()
+ * @generated
+ * @ordered
+ */
+ protected EList<Integer> size;
+
+ /**
+ * The cached value of the '{@link #getScale_factor() <em>Scale factor</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getScale_factor()
+ * @generated
+ * @ordered
+ */
+ protected EList<Double> scale_factor;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Vision_layers_1Impl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return Vision_layersPackage.Literals.VISION_LAYERS_1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Integer> getSize() {
+ if (size == null) {
+ size = new EDataTypeUniqueEList<Integer>(Integer.class, this, Vision_layersPackage.VISION_LAYERS_1__SIZE);
+ }
+ return size;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<Double> getScale_factor() {
+ if (scale_factor == null) {
+ scale_factor = new EDataTypeUniqueEList<Double>(Double.class, this, Vision_layersPackage.VISION_LAYERS_1__SCALE_FACTOR);
+ }
+ return scale_factor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case Vision_layersPackage.VISION_LAYERS_1__SIZE:
+ return getSize();
+ case Vision_layersPackage.VISION_LAYERS_1__SCALE_FACTOR:
+ return getScale_factor();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case Vision_layersPackage.VISION_LAYERS_1__SIZE:
+ getSize().clear();
+ getSize().addAll((Collection<? extends Integer>)newValue);
+ return;
+ case Vision_layersPackage.VISION_LAYERS_1__SCALE_FACTOR:
+ getScale_factor().clear();
+ getScale_factor().addAll((Collection<? extends Double>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case Vision_layersPackage.VISION_LAYERS_1__SIZE:
+ getSize().clear();
+ return;
+ case Vision_layersPackage.VISION_LAYERS_1__SCALE_FACTOR:
+ getScale_factor().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case Vision_layersPackage.VISION_LAYERS_1__SIZE:
+ return size != null && !size.isEmpty();
+ case Vision_layersPackage.VISION_LAYERS_1__SCALE_FACTOR:
+ return scale_factor != null && !scale_factor.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (size: "); //$NON-NLS-1$
+ result.append(size);
+ result.append(", scale_factor: "); //$NON-NLS-1$
+ result.append(scale_factor);
+ result.append(')');
+ return result.toString();
+ }
+
+} //Vision_layers_1Impl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/util/Vision_layersAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/util/Vision_layersAdapterFactory.java
new file mode 100644
index 0000000..f13c0e2
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/util/Vision_layersAdapterFactory.java
@@ -0,0 +1,237 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage
+ * @generated
+ */
+public class Vision_layersAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Vision_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Vision_layersAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = Vision_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Vision_layersSwitch<Adapter> modelSwitch =
+ new Vision_layersSwitch<Adapter>() {
+ @Override
+ public Adapter caseVision_layers(Vision_layers object) {
+ return createVision_layersAdapter();
+ }
+ @Override
+ public Adapter caseVision_layers_1(Vision_layers_1 object) {
+ return createVision_layers_1Adapter();
+ }
+ @Override
+ public Adapter casePixelShuffle(PixelShuffle object) {
+ return createPixelShuffleAdapter();
+ }
+ @Override
+ public Adapter caseUpsample(Upsample object) {
+ return createUpsampleAdapter();
+ }
+ @Override
+ public Adapter caseUpsamplingNearest2d(UpsamplingNearest2d object) {
+ return createUpsamplingNearest2dAdapter();
+ }
+ @Override
+ public Adapter caseUpsamplingBilinear2d(UpsamplingBilinear2d object) {
+ return createUpsamplingBilinear2dAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers <em>Vision layers</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers
+ * @generated
+ */
+ public Adapter createVision_layersAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers_1 <em>Vision layers 1</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layers_1
+ * @generated
+ */
+ public Adapter createVision_layers_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.PixelShuffle <em>Pixel Shuffle</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.PixelShuffle
+ * @generated
+ */
+ public Adapter createPixelShuffleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Upsample <em>Upsample</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Upsample
+ * @generated
+ */
+ public Adapter createUpsampleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.UpsamplingNearest2d <em>Upsampling Nearest2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.UpsamplingNearest2d
+ * @generated
+ */
+ public Adapter createUpsamplingNearest2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.UpsamplingBilinear2d <em>Upsampling Bilinear2d</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.UpsamplingBilinear2d
+ * @generated
+ */
+ public Adapter createUpsamplingBilinear2dAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //Vision_layersAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/util/Vision_layersSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/util/Vision_layersSwitch.java
new file mode 100644
index 0000000..7baa594
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/Vision_layers/util/Vision_layersSwitch.java
@@ -0,0 +1,253 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage
+ * @generated
+ */
+public class Vision_layersSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static Vision_layersPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Vision_layersSwitch() {
+ if (modelPackage == null) {
+ modelPackage = Vision_layersPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case Vision_layersPackage.VISION_LAYERS: {
+ Vision_layers vision_layers = (Vision_layers)theEObject;
+ T result = caseVision_layers(vision_layers);
+ if (result == null) result = caseModel(vision_layers);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Vision_layersPackage.VISION_LAYERS_1: {
+ Vision_layers_1 vision_layers_1 = (Vision_layers_1)theEObject;
+ T result = caseVision_layers_1(vision_layers_1);
+ if (result == null) result = caseVision_layers(vision_layers_1);
+ if (result == null) result = caseModel(vision_layers_1);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Vision_layersPackage.PIXEL_SHUFFLE: {
+ PixelShuffle pixelShuffle = (PixelShuffle)theEObject;
+ T result = casePixelShuffle(pixelShuffle);
+ if (result == null) result = caseVision_layers(pixelShuffle);
+ if (result == null) result = caseModel(pixelShuffle);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Vision_layersPackage.UPSAMPLE: {
+ Upsample upsample = (Upsample)theEObject;
+ T result = caseUpsample(upsample);
+ if (result == null) result = caseVision_layers_1(upsample);
+ if (result == null) result = caseVision_layers(upsample);
+ if (result == null) result = caseModel(upsample);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Vision_layersPackage.UPSAMPLING_NEAREST2D: {
+ UpsamplingNearest2d upsamplingNearest2d = (UpsamplingNearest2d)theEObject;
+ T result = caseUpsamplingNearest2d(upsamplingNearest2d);
+ if (result == null) result = caseVision_layers_1(upsamplingNearest2d);
+ if (result == null) result = caseVision_layers(upsamplingNearest2d);
+ if (result == null) result = caseModel(upsamplingNearest2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case Vision_layersPackage.UPSAMPLING_BILINEAR2D: {
+ UpsamplingBilinear2d upsamplingBilinear2d = (UpsamplingBilinear2d)theEObject;
+ T result = caseUpsamplingBilinear2d(upsamplingBilinear2d);
+ if (result == null) result = caseVision_layers_1(upsamplingBilinear2d);
+ if (result == null) result = caseVision_layers(upsamplingBilinear2d);
+ if (result == null) result = caseModel(upsamplingBilinear2d);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Vision layers</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Vision layers</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVision_layers(Vision_layers object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Vision layers 1</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Vision layers 1</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVision_layers_1(Vision_layers_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Pixel Shuffle</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Pixel Shuffle</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePixelShuffle(PixelShuffle object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Upsample</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Upsample</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUpsample(Upsample object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Upsampling Nearest2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Upsampling Nearest2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUpsamplingNearest2d(UpsamplingNearest2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Upsampling Bilinear2d</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Upsampling Bilinear2d</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUpsamplingBilinear2d(UpsamplingBilinear2d object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //Vision_layersSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/DatatypesFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/DatatypesFactory.java
new file mode 100644
index 0000000..7dbef91
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/DatatypesFactory.java
@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.datatypes;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage
+ * @generated
+ */
+public interface DatatypesFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ DatatypesFactory eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Device</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Device</em>'.
+ * @generated
+ */
+ Device createDevice();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ DatatypesPackage getDatatypesPackage();
+
+} //DatatypesFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/DatatypesPackage.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/DatatypesPackage.java
new file mode 100644
index 0000000..c4819af
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/DatatypesPackage.java
@@ -0,0 +1,169 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.datatypes;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface DatatypesPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "datatypes"; //$NON-NLS-1$
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///AIML/datatypes.ecore"; //$NON-NLS-1$
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "AIML.datatypes"; //$NON-NLS-1$
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ DatatypesPackage eINSTANCE = org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DeviceImpl <em>Device</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DeviceImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl#getDevice()
+ * @generated
+ */
+ int DEVICE = 0;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEVICE__TYPE = 0;
+
+ /**
+ * The number of structural features of the '<em>Device</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEVICE_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Device</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int DEVICE_OPERATION_COUNT = 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.aiml.profile.AIML.datatypes.Device <em>Device</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Device</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.datatypes.Device
+ * @generated
+ */
+ EClass getDevice();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.aiml.profile.AIML.datatypes.Device#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.datatypes.Device#getType()
+ * @see #getDevice()
+ * @generated
+ */
+ EAttribute getDevice_Type();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ DatatypesFactory getDatatypesFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DeviceImpl <em>Device</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DeviceImpl
+ * @see org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl#getDevice()
+ * @generated
+ */
+ EClass DEVICE = eINSTANCE.getDevice();
+
+ /**
+ * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute DEVICE__TYPE = eINSTANCE.getDevice_Type();
+
+ }
+
+} //DatatypesPackage
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/Device.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/Device.java
new file mode 100644
index 0000000..542ae46
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/Device.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.datatypes;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Device</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.datatypes.Device#getType <em>Type</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage#getDevice()
+ * @model
+ * @generated
+ */
+public interface Device extends EObject {
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see #setType(String)
+ * @see org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage#getDevice_Type()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.aiml.profile.AIML.datatypes.Device#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see #getType()
+ * @generated
+ */
+ void setType(String value);
+
+} // Device
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/impl/DatatypesFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/impl/DatatypesFactoryImpl.java
new file mode 100644
index 0000000..22b817c
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/impl/DatatypesFactoryImpl.java
@@ -0,0 +1,106 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DatatypesFactoryImpl extends EFactoryImpl implements DatatypesFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static DatatypesFactory init() {
+ try {
+ DatatypesFactory theDatatypesFactory = (DatatypesFactory)EPackage.Registry.INSTANCE.getEFactory(DatatypesPackage.eNS_URI);
+ if (theDatatypesFactory != null) {
+ return theDatatypesFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new DatatypesFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DatatypesFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case DatatypesPackage.DEVICE: return createDevice();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Device createDevice() {
+ DeviceImpl device = new DeviceImpl();
+ return device;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DatatypesPackage getDatatypesPackage() {
+ return (DatatypesPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static DatatypesPackage getPackage() {
+ return DatatypesPackage.eINSTANCE;
+ }
+
+} //DatatypesFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/impl/DatatypesPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/impl/DatatypesPackageImpl.java
new file mode 100644
index 0000000..b3dad41
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/impl/DatatypesPackageImpl.java
@@ -0,0 +1,369 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.Device;
+
+import org.eclipse.papyrus.aiml.profile.AIML.impl.AIMLPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class DatatypesPackageImpl extends EPackageImpl implements DatatypesPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass deviceEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private DatatypesPackageImpl() {
+ super(eNS_URI, DatatypesFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link DatatypesPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static DatatypesPackage init() {
+ if (isInited) return (DatatypesPackage)EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredDatatypesPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = registeredDatatypesPackage instanceof DatatypesPackageImpl ? (DatatypesPackageImpl)registeredDatatypesPackage : new DatatypesPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+ AIMLPackageImpl theAIMLPackage = (AIMLPackageImpl)(registeredPackage instanceof AIMLPackageImpl ? registeredPackage : AIMLPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theDatatypesPackage.createPackageContents();
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theDatatypesPackage.initializePackageContents();
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theDatatypesPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(DatatypesPackage.eNS_URI, theDatatypesPackage);
+ return theDatatypesPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getDevice() {
+ return deviceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getDevice_Type() {
+ return (EAttribute)deviceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public DatatypesFactory getDatatypesFactory() {
+ return (DatatypesFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ deviceEClass = createEClass(DEVICE);
+ createEAttribute(deviceEClass, DEVICE__TYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(deviceEClass, Device.class, "Device", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(getDevice_Type(), theTypesPackage.getString(), "type", null, 1, 1, Device.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
+ }
+
+} //DatatypesPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/impl/DeviceImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/impl/DeviceImpl.java
new file mode 100644
index 0000000..3e651e8
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/impl/DeviceImpl.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.Device;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Device</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DeviceImpl#getType <em>Type</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class DeviceImpl extends MinimalEObjectImpl.Container implements Device {
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeviceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return DatatypesPackage.Literals.DEVICE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setType(String newType) {
+ String oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, DatatypesPackage.DEVICE__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case DatatypesPackage.DEVICE__TYPE:
+ return getType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case DatatypesPackage.DEVICE__TYPE:
+ setType((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case DatatypesPackage.DEVICE__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case DatatypesPackage.DEVICE__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (type: "); //$NON-NLS-1$
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //DeviceImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/util/DatatypesAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/util/DatatypesAdapterFactory.java
new file mode 100644
index 0000000..81e76ca
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/util/DatatypesAdapterFactory.java
@@ -0,0 +1,129 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.datatypes.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage
+ * @generated
+ */
+public class DatatypesAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static DatatypesPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DatatypesAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = DatatypesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DatatypesSwitch<Adapter> modelSwitch =
+ new DatatypesSwitch<Adapter>() {
+ @Override
+ public Adapter caseDevice(Device object) {
+ return createDeviceAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.datatypes.Device <em>Device</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.datatypes.Device
+ * @generated
+ */
+ public Adapter createDeviceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //DatatypesAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/util/DatatypesSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/util/DatatypesSwitch.java
new file mode 100644
index 0000000..f57672b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/datatypes/util/DatatypesSwitch.java
@@ -0,0 +1,119 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.datatypes.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage
+ * @generated
+ */
+public class DatatypesSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static DatatypesPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DatatypesSwitch() {
+ if (modelPackage == null) {
+ modelPackage = DatatypesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case DatatypesPackage.DEVICE: {
+ Device device = (Device)theEObject;
+ T result = caseDevice(device);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Device</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Device</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseDevice(Device object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //DatatypesSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/AIMLFactoryImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/AIMLFactoryImpl.java
new file mode 100644
index 0000000..0356564
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/AIMLFactoryImpl.java
@@ -0,0 +1,130 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.aiml.profile.AIML.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AIMLFactoryImpl extends EFactoryImpl implements AIMLFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static AIMLFactory init() {
+ try {
+ AIMLFactory theAIMLFactory = (AIMLFactory)EPackage.Registry.INSTANCE.getEFactory(AIMLPackage.eNS_URI);
+ if (theAIMLFactory != null) {
+ return theAIMLFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new AIMLFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AIMLFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case AIMLPackage.SMOOTH_L1_LOSS: return createSmoothL1Loss();
+ case AIMLPackage.SOFT_MARGIN_LOSS: return createSoftMarginLoss();
+ case AIMLPackage.MULTI_LABEL_SOFT_MARGIN_LOSS: return createMultiLabelSoftMarginLoss();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public SmoothL1Loss createSmoothL1Loss() {
+ SmoothL1LossImpl smoothL1Loss = new SmoothL1LossImpl();
+ return smoothL1Loss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public SoftMarginLoss createSoftMarginLoss() {
+ SoftMarginLossImpl softMarginLoss = new SoftMarginLossImpl();
+ return softMarginLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public MultiLabelSoftMarginLoss createMultiLabelSoftMarginLoss() {
+ MultiLabelSoftMarginLossImpl multiLabelSoftMarginLoss = new MultiLabelSoftMarginLossImpl();
+ return multiLabelSoftMarginLoss;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AIMLPackage getAIMLPackage() {
+ return (AIMLPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static AIMLPackage getPackage() {
+ return AIMLPackage.eINSTANCE;
+ }
+
+} //AIMLFactoryImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/AIMLPackageImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/AIMLPackageImpl.java
new file mode 100644
index 0000000..3bdda35
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/AIMLPackageImpl.java
@@ -0,0 +1,451 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLFactory;
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.Convolution_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Convolution_layers.impl.Convolution_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.DataParallel_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.DataParallel_layers.impl.DataParallel_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.Distance_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Distance_functions.impl.Distance_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.Dropout_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Dropout_layers.impl.Dropout_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.Layer_weight_constraintsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_constraints.impl.Layer_weight_constraintsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.Layer_weight_initializersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_initializers.impl.Layer_weight_initializersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.Layer_weight_regularizersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Layer_weight_regularizers.impl.Layer_weight_regularizersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.Linear_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Linear_layers.impl.Linear_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functionsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functionsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.ModulePackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Module.impl.ModulePackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.MultiLabelSoftMarginLoss;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.NonLinearActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.NonLinearActivations.impl.NonLinearActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.Normalization_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Normalization_layers.impl.Normalization_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.Padding_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Padding_layers.impl.Padding_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.Pooling_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Pooling_layers.impl.Pooling_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.Recurrent_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Recurrent_layers.impl.Recurrent_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SmoothL1Loss;
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMarginLoss;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.SoftMinMaxActivationsPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMinMaxActivations.impl.SoftMinMaxActivationsPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.Sparse_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Sparse_layers.impl.Sparse_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.TensorPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Tensor.impl.TensorPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.Transformer_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Transformer_layers.impl.Transformer_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.Vision_layersPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Vision_layers.impl.Vision_layersPackageImpl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.DatatypesPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.datatypes.impl.DatatypesPackageImpl;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AIMLPackageImpl extends EPackageImpl implements AIMLPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass smoothL1LossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass softMarginLossEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiLabelSoftMarginLossEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private AIMLPackageImpl() {
+ super(eNS_URI, AIMLFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link AIMLPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static AIMLPackage init() {
+ if (isInited) return (AIMLPackage)EPackage.Registry.INSTANCE.getEPackage(AIMLPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredAIMLPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ AIMLPackageImpl theAIMLPackage = registeredAIMLPackage instanceof AIMLPackageImpl ? (AIMLPackageImpl)registeredAIMLPackage : new AIMLPackageImpl();
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ EcorePackage.eINSTANCE.eClass();
+ TypesPackage.eINSTANCE.eClass();
+ UMLPackage.eINSTANCE.eClass();
+
+ // Obtain or create and register interdependencies
+ Object registeredPackage = EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ ModulePackageImpl theModulePackage = (ModulePackageImpl)(registeredPackage instanceof ModulePackageImpl ? registeredPackage : ModulePackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ TensorPackageImpl theTensorPackage = (TensorPackageImpl)(registeredPackage instanceof TensorPackageImpl ? registeredPackage : TensorPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ DatatypesPackageImpl theDatatypesPackage = (DatatypesPackageImpl)(registeredPackage instanceof DatatypesPackageImpl ? registeredPackage : DatatypesPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Pooling_layersPackageImpl thePooling_layersPackage = (Pooling_layersPackageImpl)(registeredPackage instanceof Pooling_layersPackageImpl ? registeredPackage : Pooling_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Convolution_layersPackageImpl theConvolution_layersPackage = (Convolution_layersPackageImpl)(registeredPackage instanceof Convolution_layersPackageImpl ? registeredPackage : Convolution_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Layer_weight_constraintsPackageImpl theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackageImpl)(registeredPackage instanceof Layer_weight_constraintsPackageImpl ? registeredPackage : Layer_weight_constraintsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ Padding_layersPackageImpl thePadding_layersPackage = (Padding_layersPackageImpl)(registeredPackage instanceof Padding_layersPackageImpl ? registeredPackage : Padding_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ NonLinearActivationsPackageImpl theNonLinearActivationsPackage = (NonLinearActivationsPackageImpl)(registeredPackage instanceof NonLinearActivationsPackageImpl ? registeredPackage : NonLinearActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackageImpl theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackageImpl)(registeredPackage instanceof SoftMinMaxActivationsPackageImpl ? registeredPackage : SoftMinMaxActivationsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Normalization_layersPackageImpl theNormalization_layersPackage = (Normalization_layersPackageImpl)(registeredPackage instanceof Normalization_layersPackageImpl ? registeredPackage : Normalization_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Recurrent_layersPackageImpl theRecurrent_layersPackage = (Recurrent_layersPackageImpl)(registeredPackage instanceof Recurrent_layersPackageImpl ? registeredPackage : Recurrent_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Transformer_layersPackageImpl theTransformer_layersPackage = (Transformer_layersPackageImpl)(registeredPackage instanceof Transformer_layersPackageImpl ? registeredPackage : Transformer_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Linear_layersPackageImpl theLinear_layersPackage = (Linear_layersPackageImpl)(registeredPackage instanceof Linear_layersPackageImpl ? registeredPackage : Linear_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Dropout_layersPackageImpl theDropout_layersPackage = (Dropout_layersPackageImpl)(registeredPackage instanceof Dropout_layersPackageImpl ? registeredPackage : Dropout_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Sparse_layersPackageImpl theSparse_layersPackage = (Sparse_layersPackageImpl)(registeredPackage instanceof Sparse_layersPackageImpl ? registeredPackage : Sparse_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Distance_functionsPackageImpl theDistance_functionsPackage = (Distance_functionsPackageImpl)(registeredPackage instanceof Distance_functionsPackageImpl ? registeredPackage : Distance_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Loss_functionsPackageImpl theLoss_functionsPackage = (Loss_functionsPackageImpl)(registeredPackage instanceof Loss_functionsPackageImpl ? registeredPackage : Loss_functionsPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ Vision_layersPackageImpl theVision_layersPackage = (Vision_layersPackageImpl)(registeredPackage instanceof Vision_layersPackageImpl ? registeredPackage : Vision_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ DataParallel_layersPackageImpl theDataParallel_layersPackage = (DataParallel_layersPackageImpl)(registeredPackage instanceof DataParallel_layersPackageImpl ? registeredPackage : DataParallel_layersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_regularizersPackageImpl theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackageImpl)(registeredPackage instanceof Layer_weight_regularizersPackageImpl ? registeredPackage : Layer_weight_regularizersPackage.eINSTANCE);
+ registeredPackage = EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+ Layer_weight_initializersPackageImpl theLayer_weight_initializersPackage = (Layer_weight_initializersPackageImpl)(registeredPackage instanceof Layer_weight_initializersPackageImpl ? registeredPackage : Layer_weight_initializersPackage.eINSTANCE);
+
+ // Create package meta-data objects
+ theAIMLPackage.createPackageContents();
+ theModulePackage.createPackageContents();
+ theTensorPackage.createPackageContents();
+ theDatatypesPackage.createPackageContents();
+ thePooling_layersPackage.createPackageContents();
+ theConvolution_layersPackage.createPackageContents();
+ theLayer_weight_constraintsPackage.createPackageContents();
+ thePadding_layersPackage.createPackageContents();
+ theNonLinearActivationsPackage.createPackageContents();
+ theSoftMinMaxActivationsPackage.createPackageContents();
+ theNormalization_layersPackage.createPackageContents();
+ theRecurrent_layersPackage.createPackageContents();
+ theTransformer_layersPackage.createPackageContents();
+ theLinear_layersPackage.createPackageContents();
+ theDropout_layersPackage.createPackageContents();
+ theSparse_layersPackage.createPackageContents();
+ theDistance_functionsPackage.createPackageContents();
+ theLoss_functionsPackage.createPackageContents();
+ theVision_layersPackage.createPackageContents();
+ theDataParallel_layersPackage.createPackageContents();
+ theLayer_weight_regularizersPackage.createPackageContents();
+ theLayer_weight_initializersPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theAIMLPackage.initializePackageContents();
+ theModulePackage.initializePackageContents();
+ theTensorPackage.initializePackageContents();
+ theDatatypesPackage.initializePackageContents();
+ thePooling_layersPackage.initializePackageContents();
+ theConvolution_layersPackage.initializePackageContents();
+ theLayer_weight_constraintsPackage.initializePackageContents();
+ thePadding_layersPackage.initializePackageContents();
+ theNonLinearActivationsPackage.initializePackageContents();
+ theSoftMinMaxActivationsPackage.initializePackageContents();
+ theNormalization_layersPackage.initializePackageContents();
+ theRecurrent_layersPackage.initializePackageContents();
+ theTransformer_layersPackage.initializePackageContents();
+ theLinear_layersPackage.initializePackageContents();
+ theDropout_layersPackage.initializePackageContents();
+ theSparse_layersPackage.initializePackageContents();
+ theDistance_functionsPackage.initializePackageContents();
+ theLoss_functionsPackage.initializePackageContents();
+ theVision_layersPackage.initializePackageContents();
+ theDataParallel_layersPackage.initializePackageContents();
+ theLayer_weight_regularizersPackage.initializePackageContents();
+ theLayer_weight_initializersPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theAIMLPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(AIMLPackage.eNS_URI, theAIMLPackage);
+ return theAIMLPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSmoothL1Loss() {
+ return smoothL1LossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getSoftMarginLoss() {
+ return softMarginLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClass getMultiLabelSoftMarginLoss() {
+ return multiLabelSoftMarginLossEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public AIMLFactory getAIMLFactory() {
+ return (AIMLFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ smoothL1LossEClass = createEClass(SMOOTH_L1_LOSS);
+
+ softMarginLossEClass = createEClass(SOFT_MARGIN_LOSS);
+
+ multiLabelSoftMarginLossEClass = createEClass(MULTI_LABEL_SOFT_MARGIN_LOSS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ ModulePackage theModulePackage = (ModulePackage)EPackage.Registry.INSTANCE.getEPackage(ModulePackage.eNS_URI);
+ TensorPackage theTensorPackage = (TensorPackage)EPackage.Registry.INSTANCE.getEPackage(TensorPackage.eNS_URI);
+ DatatypesPackage theDatatypesPackage = (DatatypesPackage)EPackage.Registry.INSTANCE.getEPackage(DatatypesPackage.eNS_URI);
+ Pooling_layersPackage thePooling_layersPackage = (Pooling_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Pooling_layersPackage.eNS_URI);
+ Convolution_layersPackage theConvolution_layersPackage = (Convolution_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Convolution_layersPackage.eNS_URI);
+ Layer_weight_constraintsPackage theLayer_weight_constraintsPackage = (Layer_weight_constraintsPackage)EPackage.Registry.INSTANCE.getEPackage(Layer_weight_constraintsPackage.eNS_URI);
+ Padding_layersPackage thePadding_layersPackage = (Padding_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Padding_layersPackage.eNS_URI);
+ NonLinearActivationsPackage theNonLinearActivationsPackage = (NonLinearActivationsPackage)EPackage.Registry.INSTANCE.getEPackage(NonLinearActivationsPackage.eNS_URI);
+ SoftMinMaxActivationsPackage theSoftMinMaxActivationsPackage = (SoftMinMaxActivationsPackage)EPackage.Registry.INSTANCE.getEPackage(SoftMinMaxActivationsPackage.eNS_URI);
+ Normalization_layersPackage theNormalization_layersPackage = (Normalization_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Normalization_layersPackage.eNS_URI);
+ Recurrent_layersPackage theRecurrent_layersPackage = (Recurrent_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Recurrent_layersPackage.eNS_URI);
+ Transformer_layersPackage theTransformer_layersPackage = (Transformer_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Transformer_layersPackage.eNS_URI);
+ Linear_layersPackage theLinear_layersPackage = (Linear_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Linear_layersPackage.eNS_URI);
+ Dropout_layersPackage theDropout_layersPackage = (Dropout_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Dropout_layersPackage.eNS_URI);
+ Sparse_layersPackage theSparse_layersPackage = (Sparse_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Sparse_layersPackage.eNS_URI);
+ Distance_functionsPackage theDistance_functionsPackage = (Distance_functionsPackage)EPackage.Registry.INSTANCE.getEPackage(Distance_functionsPackage.eNS_URI);
+ Loss_functionsPackage theLoss_functionsPackage = (Loss_functionsPackage)EPackage.Registry.INSTANCE.getEPackage(Loss_functionsPackage.eNS_URI);
+ Vision_layersPackage theVision_layersPackage = (Vision_layersPackage)EPackage.Registry.INSTANCE.getEPackage(Vision_layersPackage.eNS_URI);
+ DataParallel_layersPackage theDataParallel_layersPackage = (DataParallel_layersPackage)EPackage.Registry.INSTANCE.getEPackage(DataParallel_layersPackage.eNS_URI);
+ Layer_weight_regularizersPackage theLayer_weight_regularizersPackage = (Layer_weight_regularizersPackage)EPackage.Registry.INSTANCE.getEPackage(Layer_weight_regularizersPackage.eNS_URI);
+ Layer_weight_initializersPackage theLayer_weight_initializersPackage = (Layer_weight_initializersPackage)EPackage.Registry.INSTANCE.getEPackage(Layer_weight_initializersPackage.eNS_URI);
+
+ // Add subpackages
+ getESubpackages().add(theModulePackage);
+ getESubpackages().add(theTensorPackage);
+ getESubpackages().add(theDatatypesPackage);
+ getESubpackages().add(thePooling_layersPackage);
+ getESubpackages().add(theConvolution_layersPackage);
+ getESubpackages().add(theLayer_weight_constraintsPackage);
+ getESubpackages().add(thePadding_layersPackage);
+ getESubpackages().add(theNonLinearActivationsPackage);
+ getESubpackages().add(theSoftMinMaxActivationsPackage);
+ getESubpackages().add(theNormalization_layersPackage);
+ getESubpackages().add(theRecurrent_layersPackage);
+ getESubpackages().add(theTransformer_layersPackage);
+ getESubpackages().add(theLinear_layersPackage);
+ getESubpackages().add(theDropout_layersPackage);
+ getESubpackages().add(theSparse_layersPackage);
+ getESubpackages().add(theDistance_functionsPackage);
+ getESubpackages().add(theLoss_functionsPackage);
+ getESubpackages().add(theVision_layersPackage);
+ getESubpackages().add(theDataParallel_layersPackage);
+ getESubpackages().add(theLayer_weight_regularizersPackage);
+ getESubpackages().add(theLayer_weight_initializersPackage);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ smoothL1LossEClass.getESuperTypes().add(theLoss_functionsPackage.getLoss_functions_1());
+ softMarginLossEClass.getESuperTypes().add(theLoss_functionsPackage.getLoss_functions_1());
+ multiLabelSoftMarginLossEClass.getESuperTypes().add(theLoss_functionsPackage.getLoss_functions_1_2());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(smoothL1LossEClass, SmoothL1Loss.class, "SmoothL1Loss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(softMarginLossEClass, SoftMarginLoss.class, "SoftMarginLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ initEClass(multiLabelSoftMarginLossEClass, MultiLabelSoftMarginLoss.class, "MultiLabelSoftMarginLoss", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //AIMLPackageImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/MultiLabelSoftMarginLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/MultiLabelSoftMarginLossImpl.java
new file mode 100644
index 0000000..02ae480
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/MultiLabelSoftMarginLossImpl.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1_2Impl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.MultiLabelSoftMarginLoss;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multi Label Soft Margin Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class MultiLabelSoftMarginLossImpl extends Loss_functions_1_2Impl implements MultiLabelSoftMarginLoss {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiLabelSoftMarginLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return AIMLPackage.Literals.MULTI_LABEL_SOFT_MARGIN_LOSS;
+ }
+
+} //MultiLabelSoftMarginLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/SmoothL1LossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/SmoothL1LossImpl.java
new file mode 100644
index 0000000..02d92d9
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/SmoothL1LossImpl.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1Impl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SmoothL1Loss;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Smooth L1 Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SmoothL1LossImpl extends Loss_functions_1Impl implements SmoothL1Loss {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SmoothL1LossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return AIMLPackage.Literals.SMOOTH_L1_LOSS;
+ }
+
+} //SmoothL1LossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/SoftMarginLossImpl.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/SoftMarginLossImpl.java
new file mode 100644
index 0000000..17c088b
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/impl/SoftMarginLossImpl.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.impl.Loss_functions_1Impl;
+
+import org.eclipse.papyrus.aiml.profile.AIML.SoftMarginLoss;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Soft Margin Loss</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class SoftMarginLossImpl extends Loss_functions_1Impl implements SoftMarginLoss {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SoftMarginLossImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return AIMLPackage.Literals.SOFT_MARGIN_LOSS;
+ }
+
+} //SoftMarginLossImpl
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/util/AIMLAdapterFactory.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/util/AIMLAdapterFactory.java
new file mode 100644
index 0000000..42fa5a5
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/util/AIMLAdapterFactory.java
@@ -0,0 +1,242 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.aiml.profile.AIML.*;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage
+ * @generated
+ */
+public class AIMLAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static AIMLPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AIMLAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = AIMLPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AIMLSwitch<Adapter> modelSwitch =
+ new AIMLSwitch<Adapter>() {
+ @Override
+ public Adapter caseSmoothL1Loss(SmoothL1Loss object) {
+ return createSmoothL1LossAdapter();
+ }
+ @Override
+ public Adapter caseSoftMarginLoss(SoftMarginLoss object) {
+ return createSoftMarginLossAdapter();
+ }
+ @Override
+ public Adapter caseMultiLabelSoftMarginLoss(MultiLabelSoftMarginLoss object) {
+ return createMultiLabelSoftMarginLossAdapter();
+ }
+ @Override
+ public Adapter caseModel(Model object) {
+ return createModelAdapter();
+ }
+ @Override
+ public Adapter caseLoss_functions(Loss_functions object) {
+ return createLoss_functionsAdapter();
+ }
+ @Override
+ public Adapter caseLoss_functions_1(Loss_functions_1 object) {
+ return createLoss_functions_1Adapter();
+ }
+ @Override
+ public Adapter caseLoss_functions_1_2(Loss_functions_1_2 object) {
+ return createLoss_functions_1_2Adapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.SmoothL1Loss <em>Smooth L1 Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SmoothL1Loss
+ * @generated
+ */
+ public Adapter createSmoothL1LossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.SoftMarginLoss <em>Soft Margin Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.SoftMarginLoss
+ * @generated
+ */
+ public Adapter createSoftMarginLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.MultiLabelSoftMarginLoss <em>Multi Label Soft Margin Loss</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.MultiLabelSoftMarginLoss
+ * @generated
+ */
+ public Adapter createMultiLabelSoftMarginLossAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Module.Model <em>Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Module.Model
+ * @generated
+ */
+ public Adapter createModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions <em>Loss functions</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions
+ * @generated
+ */
+ public Adapter createLoss_functionsAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1 <em>Loss functions 1</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1
+ * @generated
+ */
+ public Adapter createLoss_functions_1Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2 <em>Loss functions 12</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2
+ * @generated
+ */
+ public Adapter createLoss_functions_1_2Adapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //AIMLAdapterFactory
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/util/AIMLSwitch.java b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/util/AIMLSwitch.java
new file mode 100644
index 0000000..cf73c30
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src-gen/org/eclipse/papyrus/aiml/profile/AIML/util/AIMLSwitch.java
@@ -0,0 +1,236 @@
+/**
+ * Copyright (c) 2020 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ */
+package org.eclipse.papyrus.aiml.profile.AIML.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.aiml.profile.AIML.*;
+
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1;
+import org.eclipse.papyrus.aiml.profile.AIML.Loss_functions.Loss_functions_1_2;
+import org.eclipse.papyrus.aiml.profile.AIML.Module.Model;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.aiml.profile.AIML.AIMLPackage
+ * @generated
+ */
+public class AIMLSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static AIMLPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AIMLSwitch() {
+ if (modelPackage == null) {
+ modelPackage = AIMLPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case AIMLPackage.SMOOTH_L1_LOSS: {
+ SmoothL1Loss smoothL1Loss = (SmoothL1Loss)theEObject;
+ T result = caseSmoothL1Loss(smoothL1Loss);
+ if (result == null) result = caseLoss_functions_1(smoothL1Loss);
+ if (result == null) result = caseLoss_functions(smoothL1Loss);
+ if (result == null) result = caseModel(smoothL1Loss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AIMLPackage.SOFT_MARGIN_LOSS: {
+ SoftMarginLoss softMarginLoss = (SoftMarginLoss)theEObject;
+ T result = caseSoftMarginLoss(softMarginLoss);
+ if (result == null) result = caseLoss_functions_1(softMarginLoss);
+ if (result == null) result = caseLoss_functions(softMarginLoss);
+ if (result == null) result = caseModel(softMarginLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case AIMLPackage.MULTI_LABEL_SOFT_MARGIN_LOSS: {
+ MultiLabelSoftMarginLoss multiLabelSoftMarginLoss = (MultiLabelSoftMarginLoss)theEObject;
+ T result = caseMultiLabelSoftMarginLoss(multiLabelSoftMarginLoss);
+ if (result == null) result = caseLoss_functions_1_2(multiLabelSoftMarginLoss);
+ if (result == null) result = caseLoss_functions_1(multiLabelSoftMarginLoss);
+ if (result == null) result = caseLoss_functions(multiLabelSoftMarginLoss);
+ if (result == null) result = caseModel(multiLabelSoftMarginLoss);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Smooth L1 Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Smooth L1 Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSmoothL1Loss(SmoothL1Loss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Soft Margin Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Soft Margin Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSoftMarginLoss(SoftMarginLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Multi Label Soft Margin Loss</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Multi Label Soft Margin Loss</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseMultiLabelSoftMarginLoss(MultiLabelSoftMarginLoss object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModel(Model object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Loss functions</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Loss functions</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLoss_functions(Loss_functions object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Loss functions 1</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Loss functions 1</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLoss_functions_1(Loss_functions_1 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Loss functions 12</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Loss functions 12</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLoss_functions_1_2(Loss_functions_1_2 object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //AIMLSwitch
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src/org/eclipse/papyrus/aiml/profile/AIMLProfileResource.java b/aiml/org.eclipse.papyrus.aiml.profile/src/org/eclipse/papyrus/aiml/profile/AIMLProfileResource.java
new file mode 100644
index 0000000..dbe89e5
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src/org/eclipse/papyrus/aiml/profile/AIMLProfileResource.java
@@ -0,0 +1,31 @@
+/*****************************************************************************
+ * Copyright (c) 2020 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Ansgar Radermacher
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.aiml.profile;
+
+import org.eclipse.emf.common.util.URI;
+
+/**
+ * Utility class to get informations about AIML profile resources
+ */
+public final class AIMLProfileResource {
+
+ public static final String PROFILE_PATHMAP = "pathmap://AIML_PROFILES/"; //$NON-NLS-1$
+
+ public static final String PROFILE_PATH = PROFILE_PATHMAP + "AIML.profile.uml"; //$NON-NLS-1$
+
+ public static final URI PROFILE_PATH_URI = URI.createURI(PROFILE_PATH);
+
+ public static final String PROFILE_URI = "http://www.eclipse.org/papyrus/AIML/1"; //$NON-NLS-1$
+}
diff --git a/aiml/org.eclipse.papyrus.aiml.profile/src/org/eclipse/papyrus/aiml/profile/Activator.java b/aiml/org.eclipse.papyrus.aiml.profile/src/org/eclipse/papyrus/aiml/profile/Activator.java
new file mode 100644
index 0000000..7e98e5e
--- /dev/null
+++ b/aiml/org.eclipse.papyrus.aiml.profile/src/org/eclipse/papyrus/aiml/profile/Activator.java
@@ -0,0 +1,38 @@
+/**
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+package org.eclipse.papyrus.aiml.profile;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+
+ private static BundleContext context;
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ }
+
+}