Wolfram Language Paclet Repository

Community-contributed installable additions to the Wolfram Language

Primary Navigation

    • Cloud & Deployment
    • Core Language & Structure
    • Data Manipulation & Analysis
    • Engineering Data & Computation
    • External Interfaces & Connections
    • Financial Data & Computation
    • Geographic Data & Computation
    • Geometry
    • Graphs & Networks
    • Higher Mathematical Computation
    • Images
    • Knowledge Representation & Natural Language
    • Machine Learning
    • Notebook Documents & Presentation
    • Scientific and Medical Data & Computation
    • Social, Cultural & Linguistic Data
    • Strings & Text
    • Symbolic & Numeric Computation
    • System Operation & Setup
    • Time-Related Computation
    • User Interface Construction
    • Visualization & Graphics
    • Random Paclet
    • Alphabetical List
  • Using Paclets
    • Get Started
    • Download Definition Notebook
  • Learn More about Wolfram Language

DiagrammaticComputation

Tutorials

  • Diagram Examples
  • Introduction to Diagrammatic Computation
  • Rewriting Diagrams

Guides

  • Converting To and From Diagrams
  • Drawing Diagrams Interactively
  • Diagram Grid Layout
  • Diagram Rewriting
  • Diagrams
  • Diagram Surgery
  • Feynman Diagrams
  • Ports

Symbols

  • AnnihilationRule
  • CapDiagram
  • ColumnDiagram
  • CommutationRule
  • CopyDiagram
  • CupDiagram
  • DiagramArrange
  • DiagramAssignPorts
  • DiagramCases
  • DiagramComposition
  • DiagramCopySplit
  • DiagramDecompose
  • DiagramDelete
  • DiagramDraw
  • DiagramDual
  • DiagramExpressionReplace
  • DiagramExtract
  • DiagramFlip
  • DiagramFunction
  • DiagramGraphics
  • DiagramGraphSimplify
  • DiagramGridHeight
  • DiagramGrid
  • DiagramGridTree
  • DiagramGridWidthHeight
  • DiagramGridWidth
  • DiagramHypergraph
  • DiagramHypergraphRule
  • DiagramInsert
  • DiagramMapAt
  • DiagramMap
  • DiagramMatchPorts
  • Diagram
  • DiagramNestReplace
  • DiagramNetwork
  • DiagramPattern
  • DiagramPermute
  • DiagramPosition
  • DiagramPositions
  • DiagramProduct
  • DiagramQ
  • DiagramReplaceList
  • DiagramReplace
  • DiagramReplacePart
  • DiagramReverse
  • DiagramRightComposition
  • DiagramRule
  • DiagramsFreePorts
  • DiagramsGraph
  • DiagramsNetGraph
  • DiagramSplit
  • DiagramsPortGraph
  • DiagramSubdiagrams
  • DiagramSum
  • DiagramTensor
  • DuplicateAnnihilationRule
  • DuplicateEraserRule
  • EmptyDiagram
  • EmptyDiagramQ
  • EmptyPortQ
  • EraserAnnihilationRule
  • EraserDiagram
  • EraserRule
  • FeynArtsTopologyGraphics
  • FeynmanDiagram
  • GridInputPorts
  • GridOutputPorts
  • IdentityDiagram
  • MergeDiagram
  • PermutationDiagram
  • PortDual
  • PortMinus
  • Port
  • PortNeutral
  • PortPower
  • PortProduct
  • PortQ
  • PortSum
  • PropagationRule
  • RemoveDiagramRule
  • RowDiagram
  • SimplifyDiagram
  • SingletonDiagram
  • SpiderDiagram
  • TagPort
  • TensorDiagram
  • ToDiagram
  • ToDiagramNetwork
  • TopologyGraphics
  • TopologyGraph
  • TopologyGraphs
  • UntagPort
  • WigglyArcFunction
  • ZeroDiagram
  • ZeroPortQ
Wolfram`DiagrammaticComputation`
DiagramSplit
​
DiagramSplit
[d,n]
repartitions the ports of
d
so that its first
n
ports become outputs and the remaining ones inputs.
​
​
DiagramSplit
[d]
turns every port into an output, making
d
a state.
​
​
DiagramSplit
[d,n,dualQ]
controls whether the moved ports are dualised.
​
​
DiagramSplit
[d,n,dualQ,flipQ]
bends the moved wires around the other side.
​
Details and Options
▪
Ports are counted in the flattened order: outputs first, then inputs. A negative
n
counts back from the total arity,
-
Infinity
makes every port an input, and the default
Infinity
makes every port an output.
▪
The repartitioning composes
d
with a pure wire diagram that bends the moved ports around, so the underlying process is unchanged — this is the diagrammatic analogue of currying a function or transposing tensor legs between covariant and contravariant positions.
▪
With
dualQ
set to
False
, the moved ports keep their direction and are wrapped in
PortDual
instead.
▪
With
flipQ
set to
True
, the bending wires pass on the opposite side of the retained ports.
​
Examples  
(2)
Basic Examples  
(1)
Make all five ports of a process into outputs:
In[1]:=
DiagramSplit

Diagram
[A,{a,b,c},{x,y}]
Out[1]=
Repartition to three outputs and two inputs:
In[2]:=
DiagramSplit

Diagram
[A,{a,b,c},{x,y}],3
Out[2]=
Turn the process into a costate, with every port an input:
In[3]:=
DiagramSplit

Diagram
[A,{a,b,c},{x,y}],0
Out[3]=
Properties & Relations  
(1)

SeeAlso
DiagramPermute
 
▪
DiagramFlip
 
▪
CapDiagram
 
▪
CupDiagram
 
▪
DiagramTensor
RelatedGuides
▪
Diagrams
""

© 2026 Wolfram. All rights reserved.

  • Legal & Privacy Policy
  • Contact Us
  • WolframAlpha.com
  • WolframCloud.com