Comments
							parent
							
								
									74269902d7
								
							
						
					
					
						commit
						c11d7885e1
					
				| 
						 | 
				
			
			@ -552,10 +552,16 @@ struct GenerateFunctionalNode: Argument<T, A, Base::N + 1>, Base {
 | 
			
		|||
 | 
			
		||||
  /// Construct an execution trace for reverse AD
 | 
			
		||||
  void trace(const Values& values, Record* record, char*& raw) const {
 | 
			
		||||
    Base::trace(values, record, raw);
 | 
			
		||||
    Base::trace(values, record, raw); // recurse
 | 
			
		||||
    // Write an Expression<A> execution trace in record->trace
 | 
			
		||||
    // Iff Constant or Leaf, this will not write to raw, only to trace.
 | 
			
		||||
    // Iff the expression is functional, write all Records in raw buffer
 | 
			
		||||
    // Return value of type T is recorded in record->value
 | 
			
		||||
    record->Record::This::value = This::expression->traceExecution(values,
 | 
			
		||||
        record->Record::This::trace, raw);
 | 
			
		||||
    raw = raw + This::expression->traceSize();
 | 
			
		||||
    // raw is never modified by traceExecution, but if traceExecution has
 | 
			
		||||
    // written in the buffer, the next caller expects we advance the pointer
 | 
			
		||||
    raw += This::expression->traceSize();
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -590,12 +596,6 @@ struct FunctionalNode {
 | 
			
		|||
        return static_cast<JacobianTrace<T, A, N> const &>(*this).value;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      /// Access Trace
 | 
			
		||||
      template<class A, size_t N>
 | 
			
		||||
      ExecutionTrace<A>& trace() {
 | 
			
		||||
        return static_cast<JacobianTrace<T, A, N>&>(*this).trace;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      /// Access Jacobian
 | 
			
		||||
      template<class A, size_t N>
 | 
			
		||||
      typename Jacobian<T, A>::type& jacobian() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue