Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

timing did not work, appended fixed file #13

Open
GoogleCodeExporter opened this issue May 12, 2015 · 1 comment
Open

timing did not work, appended fixed file #13

GoogleCodeExporter opened this issue May 12, 2015 · 1 comment

Comments

@GoogleCodeExporter
Copy link

Hi, i fixed (hopefully correct) the timing:

Modified Constructors, removed division by zero.

It's probably already fixed in your new code.

#pragma once

#define MAX_NO_DURATIONS 30

class CTiming
{
public:
    CTiming(void) 
    {   
        memset(m_Durations, 0, MAX_NO_DURATIONS * sizeof(float));

        m_NoDurations       = 0;
        m_FilteredDuration  = 0.0f;
    };

    HO CTiming(const char* pName)
    {
#ifndef __CUDACC__
        sprintf_s(m_Name, "%s", pName);
#endif
        //This one is never used, thus never initialized, altered acc
        CTiming();
    }

        virtual ~CTiming(void) {};

    HO CTiming& CTiming::operator=(const CTiming& Other)
    {
            strcpy_s(m_Name, Other.m_Name);

                for (int i = 0; i < MAX_NO_DURATIONS; i++)
                {
                        m_Durations[i]  = Other.m_Durations[i];
                    }

                m_NoDurations       = Other.m_NoDurations;
            m_FilteredDuration  = Other.m_FilteredDuration;

                return *this;
    }

    void AddDuration(const float& Duration)
    {       

        float TempDurations[MAX_NO_DURATIONS];      
        memcpy(TempDurations, m_Durations, MAX_NO_DURATIONS * sizeof(float));

        m_Durations[0] = Duration;  


        float SumDuration = Duration;

        for (int i = 0; i < m_NoDurations-1; i++)
        {
            m_Durations[i + 1] = TempDurations[i];
            SumDuration += TempDurations[i];
        }

        //iterate before dividing
        m_NoDurations = min(MAX_NO_DURATIONS, m_NoDurations + 1);

        m_FilteredDuration = SumDuration / (float)m_NoDurations;

    }

    char        m_Name[MAX_CHAR_SIZE];
    float       m_Durations[MAX_NO_DURATIONS]; 

    int         m_NoDurations;
    float       m_FilteredDuration;
};

Original issue reported on code.google.com by [email protected] on 25 May 2012 at 12:15

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant