また、自動微分は計算フローを追いかけることで計算できるので、分岐(if文)やループや再帰を含むようなアルゴリズムでも偏微分できる。自動微分の導出.合成関数の偏微分の連鎖律.自動微分の基本原理は、合成関数の偏微分の連鎖律を用いた偏微分の分解である。と呼ばれる。ボトムアップ型自動微分では連鎖律を内側から外側に計算し(を計算した後でを計算する)、トップダウン型自動微分では外側から内側に計算する。ボトムアップ型自動微分.ボトムアップ型自動微分では最初に偏微分を行う入力変数を固定し、それぞれの部分式を再帰的に計算する。手計算においては連鎖律において内側の関数を繰り返し置き換えていくことに相当する。多変数の場合はヤコビ行列の積として一般化できる。の計算値を保存する領域を付け加えるだけで、変数値の計算と同時に偏導関数値を計算することができる。例として次の関数を考える。トップダウン型自動微分.トップダウン型自動微分では、はじめに偏微分される出力変数を固定して、それぞれの部分式に関する偏導関数値を再帰的に計算する。手計算においては部分式を連鎖律における外側の関数の偏微分で繰り返し置き換えていくことに相当する。self.children=childrenor[]テープを使用する場合のアルゴリズムの実装の流れは以下の通りである。これを要素表記から行列表記に直すと、転置行列との行列積になる。二重数を用いた自動微分.ボトムアップ型自動微分は実数の代数に(元を)添加して新しい算術を導入することによって可能である。全ての数(通常の実数)に対して、その数における関数の微分を表現する追加の成分が足され、全ての算術演算がこの添加代数に拡張される。すなわち二重数の代数である。このアプローチはの理論(つまり双対空間のテンソル代数)によって一般化される(を見よ)。引き算と割り算についても同様である。ベクトル引数と関数.高階・多変数.厳密で一般的な定式化はを通してを用いることにより達成される。実装.ソースコード変換.