<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://spindynamics.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Multiprop.m</id>
	<title>Multiprop.m - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://spindynamics.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Multiprop.m"/>
	<link rel="alternate" type="text/html" href="https://spindynamics.org/wiki/index.php?title=Multiprop.m&amp;action=history"/>
	<updated>2026-10-02T01:13:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.15</generator>
	<entry>
		<id>https://spindynamics.org/wiki/index.php?title=Multiprop.m&amp;diff=10261&amp;oldid=prev</id>
		<title>Kuprov: version fragment to 2.13 per IK 2026-08-30</title>
		<link rel="alternate" type="text/html" href="https://spindynamics.org/wiki/index.php?title=Multiprop.m&amp;diff=10261&amp;oldid=prev"/>
		<updated>2026-08-30T09:12:25Z</updated>

		<summary type="html">&lt;p&gt;version fragment to 2.13 per IK 2026-08-30&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 09:12, 30 August 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l32&quot; &gt;Line 32:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[propagator.m]], [[evolution.m]], [[step.m]], [[krylov.m]], [[clean_up.m]], [[Kernel functions]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[propagator.m]], [[evolution.m]], [[step.m]], [[krylov.m]], [[clean_up.m]], [[Kernel functions]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;''Version 2.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;11&lt;/del&gt;, authors: [[Ilya Kuprov]]''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;''Version 2.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;13&lt;/ins&gt;, authors: [[Ilya Kuprov]]''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kuprov</name></author>
		
	</entry>
	<entry>
		<id>https://spindynamics.org/wiki/index.php?title=Multiprop.m&amp;diff=10109&amp;oldid=prev</id>
		<title>Kuprov: sync with Spinach main f053e432: new page for repeated propagator application by binary adaptive squaring</title>
		<link rel="alternate" type="text/html" href="https://spindynamics.org/wiki/index.php?title=Multiprop.m&amp;diff=10109&amp;oldid=prev"/>
		<updated>2026-08-30T08:12:31Z</updated>

		<summary type="html">&lt;p&gt;sync with Spinach main f053e432: new page for repeated propagator application by binary adaptive squaring&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:multiprop.m}} __NOTOC__&lt;br /&gt;
Applies a propagator repeatedly by binary adaptive squaring.&lt;br /&gt;
&lt;br /&gt;
The step count is cast to uint64 and its binary expansion is processed from the least significant bit upwards. Whenever the current bit is set, the current power of the propagator is applied to the state: as rho=P*rho in the sphten-liouv, zeeman-liouv and zeeman-wavef formalisms, and as rho=P*rho*P' in zeeman-hilb, where rho is a density matrix. The propagator is then squared and passed through [[clean_up.m]] with spin_system.tols.prop_chop, but only while higher binary powers remain to be processed. A zero step count returns the state unchanged.&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&lt;br /&gt;
     rho=multiprop(spin_system,P,rho,N)&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&lt;br /&gt;
     spin_system - Spinach spin system object&lt;br /&gt;
 &lt;br /&gt;
     P   - propagator matrix&lt;br /&gt;
 &lt;br /&gt;
     rho - state vector or state-vector stack in Liouville space or&lt;br /&gt;
           wavefunction formalism, or a density matrix in Hilbert space&lt;br /&gt;
           formalism&lt;br /&gt;
 &lt;br /&gt;
     N   - number of times to apply the propagator&lt;br /&gt;
&lt;br /&gt;
==Outputs==&lt;br /&gt;
&lt;br /&gt;
     rho - state vector or density matrix after N applications of P&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
The algorithm expands N into binary powers, squares P successively, and applies only the active powers to rho. This avoids constructing P^N explicitly. Propagator squares are cleaned up using spin_system.tols.prop_chop.&lt;br /&gt;
&lt;br /&gt;
A step count supplied as a double must be a non-negative whole number not exceeding flintmax; Matlab integer types are accepted directly.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[propagator.m]], [[evolution.m]], [[step.m]], [[krylov.m]], [[clean_up.m]], [[Kernel functions]]&lt;br /&gt;
&lt;br /&gt;
''Version 2.11, authors: [[Ilya Kuprov]]''&lt;/div&gt;</summary>
		<author><name>Kuprov</name></author>
		
	</entry>
</feed>