Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
nkDSL documentation
nkDSL documentation

Getting started

  • Overview
  • Quick start
  • Compiler and execution
    • Operator lowering registry

The DSL

  • The DSL
    • The Symbolic Operator
    • Selectors and expressions
    • Emissions and matrix elements
    • Linting
      • Lint Messages
    • Currently Supported
    • Iterators
      • globally()
      • for_each_site(label)
      • for_each_pair(label_a, label_b)
      • for_each_distinct_pair(label_a, label_b)
      • Static K-body iterators
    • Conditions
      • where(predicate)
      • Comparison predicates
      • Logical composition
    • Updates
      • identity()
      • shift(site_ref, delta)
      • hop(src, dst, amount=1)
      • shift_mod(site_ref, delta)
      • write(site_ref, value)
      • swap(...) and permute(...)
      • affine(...) and scatter(...)

Guides

  • Guides
    • Extending the DSL
      • Extending DSL Iterators
      • Extending DSL Predicates
      • Extending DSL Emissions

Tutorials

  • Tutorials
    • Ising model
    • Heisenberg model
    • J1-J2 model

Advanced Tutorials

  • Advanced Tutorials
    • Custom Iterators
    • Custom Predicates
    • Reading Symbolic IR
    • Conditional Emissions (if / elseif / else)
    • Extending Emission Clauses

Reference

  • API reference
    • nkdsl.SymbolicDiscreteJaxOperator
    • nkdsl.Update
    • nkdsl.ExpressionContext
    • nkdsl.SiteSelector
    • nkdsl.site
    • nkdsl.emitted
    • nkdsl.symbol
    • nkdsl.source_index
    • nkdsl.target_index
    • nkdsl.shift
    • nkdsl.shift_mod
    • nkdsl.write
    • nkdsl.swap
    • nkdsl.permute
    • nkdsl.affine
    • nkdsl.scatter
    • nkdsl.identity
    • nkdsl.SymbolicOperator
    • nkdsl.CompiledOperator
    • nkdsl.SymbolicOperatorSum
    • nkdsl.SymbolicCompiler
    • nkdsl.SymbolicCompilerOptions
    • nkdsl.SymbolicCompilationContext
    • nkdsl.SymbolicCompiledArtifact
    • nkdsl.SymbolicCompilationSignature
    • nkdsl.SymbolicCacheKey
    • nkdsl.SymbolicOperatorIR
    • nkdsl.SymbolicIRTerm
    • nkdsl.KBodyIteratorSpec
    • nkdsl.EmissionSpec
    • nkdsl.UpdateProgram
    • nkdsl.UpdateOp
    • nkdsl.AmplitudeExpr
    • nkdsl.PredicateExpr
    • nkdsl.cfg
    • nkdsl
    • nkdsl.dsl
    • nkdsl.dsl.context
    • nkdsl.dsl.operator
    • nkdsl.dsl.rewrite
    • nkdsl.dsl.selectors
    • nkdsl.core
    • nkdsl.core.base
    • nkdsl.core.operator
    • nkdsl.core.compiled
    • nkdsl.core.sum
    • nkdsl.compiler
    • nkdsl.compiler.compiler
    • nkdsl.compiler.defaults
    • nkdsl.compiler.cache.store
    • nkdsl.compiler.core.artifact
    • nkdsl.compiler.core.context
    • nkdsl.compiler.core.options
    • nkdsl.compiler.core.pipeline
    • nkdsl.compiler.core.pass_report
    • nkdsl.compiler.core.signature
    • nkdsl.compiler.diagnostics
    • nkdsl.compiler.diagnostics.collector
    • nkdsl.compiler.diagnostics.formatting
    • nkdsl.compiler.diagnostics.models
    • nkdsl.compiler.diagnostics.state_sampling
    • nkdsl.compiler.diagnostics.traversals
    • nkdsl.compiler.diagnostics.rules
    • nkdsl.compiler.diagnostics.rules.base
    • nkdsl.compiler.diagnostics.rules.connectivity_rules
    • nkdsl.compiler.diagnostics.rules.structural_rules
    • nkdsl.compiler.diagnostics.rules.symbol_rules
    • nkdsl.compiler.lowering.base
    • nkdsl.compiler.lowering.registry
    • nkdsl.compiler.lowering.jax_lowerer
    • nkdsl.compiler.passes.base
    • nkdsl.compiler.passes.diagnostics
    • nkdsl.compiler.passes.validation
    • nkdsl.compiler.passes.normalization
    • nkdsl.compiler.passes.analysis
    • nkdsl.compiler.passes.fusion
    • nkdsl.ir
    • nkdsl.ir.expressions
    • nkdsl.ir.predicates
    • nkdsl.ir.update
    • nkdsl.ir.term
    • nkdsl.ir.program
    • nkdsl.ir.validate
    • nkdsl.errors
    • nkdsl.errors.exceptions
    • nkdsl.configs

Project

  • Changelog
Back to top
View this page

ConditionsΒΆ

Conditions decide which iterator visits produce output branches.

The main entry point is where(...) and the underlying boolean IR type is nkdsl.ir.PredicateExpr.

  • where(predicate)
  • Comparison predicates
  • Logical composition
Next
where(predicate)
Previous
Static K-body iterators
Copyright © 2026, The nkDSL Authors
Made with Sphinx and @pradyunsg's Furo