<commit_before>//__________________________________________________________________________
// Author(s): <NAME> - October 2013
// email:  <EMAIL>
//
// DO NOT REDISTRIBUTE WITHOUT PERMISSION
//__________________________________________________________________________
//

#ifndef ElasticTendon_BiSec_h
#define ElasticTendon_BiSec_h
#include <string>
#include "Curve.h"

//template <typename CurveMode::Mode mode>
class ElasticTendon_BiSec {

public:
    typedef Curve<CurveMode::Offline> CurveOffline;
    ElasticTendon_BiSec();
    ElasticTendon_BiSec(std::string id);
    ElasticTendon_BiSec( double optimalFibreLength,
                   double pennationAngle,
                   double tendonSlackLength,
                   double percentageChange,
                   double damping,
                   double maxIsometricForce, 
                   double strengthCoefficient,
                   double maxContractionVelocity,
                   const CurveOffline& activeForceLengthCurve,
                   const CurveOffline& passiveForceLengthCurve, 
                   const CurveOffline& forceVelocityCurve,
                   const CurveOffline& tendonForceStrainCurve);
    virtual ~ElasticTendon_BiSec() {}
    double operator()(double fl);
    ElasticTendon_BiSec(const ElasticTendon_BiSec& orig);
    ElasticTendon_BiSec& operator=(const ElasticTendon_BiSec& orig);
    
    void setParametersToComputeForces(double optimalFibreLength,
                                      double pennationAngle,
                                      double tendonSlackLength,
                                      double percentageChange,
                                      double damping, 
                                      double maxIsometricForce, 
                                      double strengthCoefficient,
                                      double maxContractionVelocity);

    void setTime(const double& time) {    time_ = time; }
    void setMuscleTendonLength(double muscleTendonLength);
    void setActivation(double activation);
    void updateFibreLength();
    double getPenalty() const { return tendonPenalty_;}

    double getFibreLength() { return fibreLength_;}
    void setStrengthCoefficient(double strengthCoefficient);
    void setTendonSlackLength(double tendonSlackLength);
    void setOptimalFibreLength(double optimalFibreLength);
    void setPennationAngle(double pennationAngle);
    void setMaxIsometricForce(double maxIsometricForce);
    void setCurves(const CurveOffline& activeForceLengthCurve, 
                   const CurveOffline& passiveForceLengthCurve, 
                   const CurveOffline& forceVelocityCurve,
                   const CurveOffline& tendonForceStrainCurve);
    void setTolerance(double tolerance = 0.0);
    double getTolerance() const;
    void pushState();
    void resetState();
    <commit_msg>Remove default tolerance value in setTolerance member function<commit_after>//__________________________________________________________________________
// Author(s): <NAME> - October 2013
// email:  <EMAIL>
//
// DO NOT REDISTRIBUTE WITHOUT PERMISSION
//__________________________________________________________________________
//

#ifndef ElasticTendon_BiSec_h
#define ElasticTendon_BiSec_h
#include <string>
#include "Curve.h"

//template <typename CurveMode::Mode mode>
class ElasticTendon_BiSec {

public:
    typedef Curve<CurveMode::Offline> CurveOffline;
    ElasticTendon_BiSec();
    ElasticTendon_BiSec(std::string id);
    ElasticTendon_BiSec( double optimalFibreLength,
                   double pennationAngle,
                   double tendonSlackLength,
                   double percentageChange,
                   double damping,
                   double maxIsometricForce, 
                   double strengthCoefficient,
                   double maxContractionVelocity,
                   const CurveOffline& activeForceLengthCurve,
                   const CurveOffline& passiveForceLengthCurve, 
                   const CurveOffline& forceVelocityCurve,
                   const CurveOffline& tendonForceStrainCurve);
    virtual ~ElasticTendon_BiSec() {}
    double operator()(double fl);
    ElasticTendon_BiSec(const ElasticTendon_BiSec& orig);
    ElasticTendon_BiSec& operator=(const ElasticTendon_BiSec& orig);
    
    void setParametersToComputeForces(double optimalFibreLength,
                                      double pennationAngle,
                                      double tendonSlackLength,
                                      double percentageChange,
                                      double damping, 
                                      double maxIsometricForce, 
                                      double strengthCoefficient,
                                      double maxContractionVelocity);

    void setTime(const double& time) {    time_ = time; }
    void setMuscleTendonLength(double muscleTendonLength);
    void setActivation(double activation);
    void updateFibreLength();
    double getPenalty() const { return tendonPenalty_;}

    double getFibreLength() { return fibreLength_;}
    void setStrengthCoefficient(double strengthCoefficient);
    void setTendonSlackLength(double tendonSlackLength);
    void setOptimalFibreLength(double optimalFibreLength);
    void setPennationAngle(double pennationAngle);
    void setMaxIsometricForce(double maxIsometricForce);
    void setCurves(const CurveOffline& activeForceLengthCurve, 
                   const CurveOffline& passiveForceLengthCurve, 
                   const CurveOffline& forceVelocityCurve,
                   const CurveOffline& tendonForceStrainCurve);
    void setTolerance(double tolerance);
    double getTolerance() const;
    void pushState();
    void resetState();
    
{'fraction_non_alphanumeric': 0.05802106717319979, 'fraction_numerical': 0.001726817475392851, 'mean_word_length': 2.425192193968066, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 14, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7046755', 'n_tokens_mistral': 1512, 'n_tokens_neox': 1417, 'n_words': 312}