//
//  MPFactorialTerm.h
//  MathKit
//
//  Created by Kim Wittenburg on 15.11.14.
//  Copyright (c) 2014 Kim Wittenburg. All rights reserved.
//

#import "MPTerm.h"


/*!
 @header
 This file contains the <code>MPFactorialTerm</code> class.
 */



@class MPFactorialTerm;


/*!
    @class      MPFactorialTerm
    @abstract   A factorial term implements the factorial function.
 
    @discussion Because the factorial function is only defined for whole numbers,
                actually the gamma function is used. The gamma function is
                defined for all real numbers.
 */
@interface MPFactorialTerm : MPTerm

/*!
    @method     initWithTerm:
    @abstract   Initializes the receiver with the specified term.
 
    @discussion The <code>term</code> is not copied.
 
    @param      term
                The term to initialize the receiver. Must not be
                <code>nil</code>.
 
    @return     A newly initialized factorial term.
 */
- (instancetype)initWithTerm:(MPTerm *)term; /* designated initializer */


/*!
    @property   term
    @abstract   The receiver's term.
 */
@property (readonly, nonatomic, strong) MPTerm *term;

@end
