📄 symbmath.cpp
字号:
#include "symbmath.h"
#include "debug.h"
#undef DEBUG3
#undef DEBUG
#ifndef SYMB_ANSIMATH
TReal cos(TReal t2)
{
TReal temp;
Math::Cos(temp, t2);
return temp;
}
TReal sin(TReal t2)
{
TReal temp;
Math::Sin(temp, t2);
return temp;
}
TReal sqrt(TReal t2)
{
TReal temp;
Math::Sqrt(temp, t2);
return temp;
}
TReal pow(TReal t2, TReal t3)
{
TReal temp;
Math::Pow(temp, t2, t3);
return temp;
}
TReal exp(TReal t2)
{
TReal temp;
Math::Exp(temp, t2);
return temp;
}
TReal fabs(TReal t2)
{
return t2 >= 0.0 ? t2 : -t2;
}
TReal floor(TReal t2)
{
TInt temp = t2;
return (TReal) temp;
}
TReal ceil(TReal t2)
{
TInt temp = t2+1;
return (TReal) temp;
}
TReal atan2(TReal t2, TReal t3)
{
TReal temp;
Math::ATan(temp, t2, t3);
return temp;
}
TReal log(TReal t2)
{
TReal temp;
Math::Log(temp, t2);
return temp;
}
TUint32 rand()
{
// TInt64 seed = 0;
// return Math::Rand(seed);
return Math::Random();
}
TInt srand(unsigned int &aSeed)
{
TInt64 seed = aSeed;
return Math::Rand(seed);
}
#endif
// IntVector
IntVector::IntVector() : _size(0), _pos(0), /*_vector(0),*/ iErr(-17.00)
{
// resize(40);
// _size=40;
dcnt = 0;
}
IntVector::IntVector(int size, TInt init)
{
// _vector = new (ELeave) TInt[size];
_size = 0;
_pos = 0;
for(int i=0; i<size;i++)
push_back(init); //_vector[i] = init;
// _pos = i;
// _size = i;
dcnt = 0;
#ifdef DEBUG3 if(dcnt < 20) { CStaticDebug::WriteInfo(_L("const:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteInfo(_L("-")); CStaticDebug::WriteIntN(_size); dcnt ++; }#endif}
void IntVector::resize(int size)
{
int i;
#ifdef DEBUG if(dcnt < 20) { CStaticDebug::WriteInfo(_L("resize:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteIntN(_pos); dcnt ++; }#endif if(size<_size)
{
if(_pos > size)
_pos = size;
}
else
{
TInt *tvector;
tvector=_vector;
_vector = new (ELeave) TInt[size];
if(_size>0)
{
for(i=0; i<_pos;i++)
_vector[i]=tvector[i];
delete [] tvector;
}
_size = size;
_pos = size;
}
#ifdef DEBUG if(dcnt < 20) { CStaticDebug::WriteInfo(_L("resize2:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteIntN(_pos); }#endif}
IntVector::~IntVector()
{
/* if(_size>0)
delete [] _vector;*/
}
TInt& IntVector::operator[]( unsigned long idx )
{
if( idx >= 0 && idx < _pos )
return _vector[idx];
else
{
return iErr;//iErr; // Error returns -17.0;
}
}
void IntVector::push_back(const TInt &t)
{
#ifdef DEBUG3 if(dcnt < 20) { CStaticDebug::WriteInfo(_L("pb:")); CStaticDebug::WriteInt(t); CStaticDebug::WriteInfo(_L(":")); CStaticDebug::WriteIntN(_pos); dcnt ++; }#endif
if(_pos<_size)
_vector[_pos++]=t;
else
{
this->resize(_size+1);
_vector[_pos-1]=t;
}
}
void IntVector::clear()
{
#ifdef DEBUG2 if(dcnt < 20) { CStaticDebug::WriteInfo(_L("clr:")); CStaticDebug::WriteIntN(_pos); dcnt ++; }#endif for(int i=0; i<_pos; i++)
{
_vector[i] = 0.0;
}
}
const int IntVector::size()
{
return _pos;
}
// FloatVector
FloatVector::FloatVector() : _size(0), _pos(0), /*_vector(0),*/ iErr(-17.00)
{
// resize(40);
// _size=40;
dcnt = 0;
}
FloatVector::FloatVector(int size, TReal init)
{
// _vector = new (ELeave) TReal[size];
_size = 0;
_pos = 0;
for(int i=0; i<size;i++)
push_back(init); //_vector[i] = init;
// _pos = i;
// _size = i;
dcnt = 0;
#ifdef DEBUG3 if(dcnt < 20) { CStaticDebug::WriteInfo(_L("const:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteInfo(_L("-")); CStaticDebug::WriteIntN(_size); dcnt ++; }#endif}
void FloatVector::resize(int size)
{
int i;
#ifdef DEBUG if(dcnt < 20) { CStaticDebug::WriteInfo(_L("resize:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteIntN(_pos); dcnt ++; }#endif if(size<_size)
{
if(_pos > size)
_pos = size;
}
else
{
TReal *tvector;
tvector=_vector;
_vector = new (ELeave) TReal[size];
if(_size>0)
{
for(i=0; i<_pos;i++)
_vector[i]=tvector[i];
delete [] tvector;
}
_size = size;
_pos = size;
}
#ifdef DEBUG if(dcnt < 20) { CStaticDebug::WriteInfo(_L("resize2:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteIntN(_pos); }#endif}
FloatVector::~FloatVector()
{
/* if(_size>0)
delete [] _vector;*/
}
TReal& FloatVector::operator[]( unsigned long idx )
{
if( idx >= 0 && idx < _pos )
return _vector[idx];
else
{
return iErr;//iErr; // Error returns -17.0;
}
}
void FloatVector::push_back(const TReal &t)
{
#ifdef DEBUG3 if(dcnt < 20) { CStaticDebug::WriteInfo(_L("pb:")); CStaticDebug::WriteReal(t); CStaticDebug::WriteInfo(_L(":")); CStaticDebug::WriteIntN(_pos); dcnt ++; }#endif
if(_pos<_size)
_vector[_pos++]=t;
else
{
this->resize(_size+1);
_vector[_pos-1]=t;
}
}
void FloatVector::clear()
{
#ifdef DEBUG2 if(dcnt < 20) { CStaticDebug::WriteInfo(_L("clr:")); CStaticDebug::WriteIntN(_pos); dcnt ++; }#endif for(int i=0; i<_pos; i++)
{
_vector[i] = 0.0;
}
}
const int FloatVector::size()
{
return _pos;
}
// ADSR Vector
ADSRVector::ADSRVector() : _size(0), _pos(0), /*_vector(0),*/ iErr(0)
{
// resize(40);
// _size=40;
dcnt = 0;
}
ADSRVector::ADSRVector(int size, ADSR *init)
{
// _vector = new (ELeave) TReal[size];
_size = 0;
_pos = 0;
for(int i=0; i<size;i++)
push_back(init); //_vector[i] = init;
// _pos = i;
// _size = i;
dcnt = 0;
#ifdef DEBUG3 if(dcnt < 20) { CStaticDebug::WriteInfo(_L("const:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteInfo(_L("-")); CStaticDebug::WriteIntN(_size); dcnt ++; }#endif}
void ADSRVector::resize(int size)
{
int i;
#ifdef DEBUG if(dcnt < 20) { CStaticDebug::WriteInfo(_L("resize:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteIntN(_pos); dcnt ++; }#endif if(size<_size)
{
if(_pos > size)
_pos = size;
}
else
{
ADSR **tvector;
tvector=_vector;
_vector = new (ELeave) ADSR*[size];
if(_size>0)
{
for(i=0; i<_pos;i++)
_vector[i]=tvector[i];
delete [] tvector;
}
_size = size;
_pos = size;
}
#ifdef DEBUG if(dcnt < 20) { CStaticDebug::WriteInfo(_L("resize2:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteIntN(_pos); }#endif}
ADSRVector::~ADSRVector()
{
/* if(_size>0)
delete [] _vector;*/
}
ADSR*& ADSRVector::operator[]( unsigned long idx )
{
if( idx >= 0 && idx < _pos )
return _vector[idx];
else
{
return iErr; // Error returns -17.0;
}
}
void ADSRVector::push_back(ADSR *t)
{
#ifdef DEBUG3 if(dcnt < 20) { CStaticDebug::WriteInfo(_L("pb:")); CStaticDebug::WriteReal(t); CStaticDebug::WriteInfo(_L(":")); CStaticDebug::WriteIntN(_pos); dcnt ++; }#endif
if(_pos<_size)
_vector[_pos++]=t;
else
{
this->resize(_size+1);
_vector[_pos-1]=t;
}
}
const int ADSRVector::size()
{
return _pos;
}
// WaveLoop Vector
WaveLoopVector::WaveLoopVector() : _size(0), _pos(0), /*_vector(0),*/ iErr(0)
{
// resize(40);
// _size=40;
dcnt = 0;
}
WaveLoopVector::WaveLoopVector(int size, WaveLoop *init)
{
// _vector = new (ELeave) TReal[size];
_size = 0;
_pos = 0;
for(int i=0; i<size;i++)
push_back(init); //_vector[i] = init;
// _pos = i;
// _size = i;
dcnt = 0;
#ifdef DEBUG3 if(dcnt < 20) { CStaticDebug::WriteInfo(_L("const:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteInfo(_L("-")); CStaticDebug::WriteIntN(_size); dcnt ++; }#endif}
void WaveLoopVector::resize(int size)
{
int i;
#ifdef DEBUG if(dcnt < 20) { CStaticDebug::WriteInfo(_L("resize:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteIntN(_pos); dcnt ++; }#endif if(size<_size)
{
if(_pos > size)
_pos = size;
}
else
{
WaveLoop **tvector;
tvector=_vector;
_vector = new (ELeave) WaveLoop*[size];
if(_size>0)
{
for(i=0; i<_pos;i++)
_vector[i]=tvector[i];
delete [] tvector;
}
_size = size;
_pos = size;
}
#ifdef DEBUG if(dcnt < 20) { CStaticDebug::WriteInfo(_L("resize2:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteIntN(_pos); }#endif}
WaveLoopVector::~WaveLoopVector()
{
/* if(_size>0)
delete [] _vector;*/
}
WaveLoop*& WaveLoopVector::operator[]( unsigned long idx )
{
if( idx >= 0 && idx < _pos )
return _vector[idx];
else
{
return iErr; // Error returns -17.0;
}
}
void WaveLoopVector::push_back(WaveLoop *t)
{
#ifdef DEBUG3 if(dcnt < 20) { CStaticDebug::WriteInfo(_L("pb:")); CStaticDebug::WriteReal(t); CStaticDebug::WriteInfo(_L(":")); CStaticDebug::WriteIntN(_pos); dcnt ++; }#endif
if(_pos<_size)
_vector[_pos++]=t;
else
{
this->resize(_size+1);
_vector[_pos-1]=t;
}
}
const int WaveLoopVector::size()
{
return _pos;
}
// Grain Vector
GrainVector::GrainVector() : _size(0), _pos(0)
{
// resize(40);
// _size=40;
dcnt = 0;
}
GrainVector::GrainVector(int size, Grain &init)
{
// _vector = new (ELeave) TReal[size];
_size = 0;
_pos = 0;
for(int i=0; i<size;i++)
push_back(init); //_vector[i] = init;
// _pos = i;
// _size = i;
dcnt = 0;
#ifdef DEBUG3 if(dcnt < 20) { CStaticDebug::WriteInfo(_L("const:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteInfo(_L("-")); CStaticDebug::WriteIntN(_size); dcnt ++; }#endif}
void GrainVector::resize(int size)
{
int i;
#ifdef DEBUG if(dcnt < 20) { CStaticDebug::WriteInfo(_L("resize:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteIntN(_pos); dcnt ++; }#endif if(size<_size)
{
if(_pos > size)
_pos = size;
}
else
{
Grain *tvector;
tvector=_vector;
_vector = new (ELeave) Grain[size];
if(_size>0)
{
for(i=0; i<_pos;i++)
_vector[i]=tvector[i];
delete [] tvector;
}
_size = size;
_pos = size;
}
#ifdef DEBUG if(dcnt < 20) { CStaticDebug::WriteInfo(_L("resize2:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteIntN(_pos); }#endif}
GrainVector::~GrainVector()
{
/* if(_size>0)
delete [] _vector;*/
}
Grain& GrainVector::operator[]( unsigned long idx )
{
if( idx >= 0 && idx < _pos )
return _vector[idx];
else
{
return iErr; // Error returns -17.0;
}
}
void GrainVector::push_back(Grain &t)
{
#ifdef DEBUG3 if(dcnt < 20) { CStaticDebug::WriteInfo(_L("pb:")); CStaticDebug::WriteReal(t); CStaticDebug::WriteInfo(_L(":")); CStaticDebug::WriteIntN(_pos); dcnt ++; }#endif
if(_pos<_size)
_vector[_pos++]=t;
else
{
this->resize(_size+1);
_vector[_pos-1]=t;
}
}
const int GrainVector::size()
{
return _pos;
}
// FileWvIn Vector
FileWvInVector::FileWvInVector() : _size(0), _pos(0), /*_vector(0),*/ iErr(0)
{
// resize(40);
// _size=40;
dcnt = 0;
}
FileWvInVector::FileWvInVector(int size, FileWvIn *init)
{
// _vector = new (ELeave) TReal[size];
_size = 0;
_pos = 0;
for(int i=0; i<size;i++)
push_back(init); //_vector[i] = init;
// _pos = i;
// _size = i;
dcnt = 0;
#ifdef DEBUG3 if(dcnt < 20) { CStaticDebug::WriteInfo(_L("const:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteInfo(_L("-")); CStaticDebug::WriteIntN(_size); dcnt ++; }#endif}
void FileWvInVector::resize(int size)
{
int i;
#ifdef DEBUG if(dcnt < 20) { CStaticDebug::WriteInfo(_L("resize:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteIntN(_pos); dcnt ++; }#endif if(size<_size)
{
if(_pos > size)
_pos = size;
}
else
{
FileWvIn **tvector;
tvector=_vector;
_vector = new (ELeave) FileWvIn*[size];
if(_size>0)
{
for(i=0; i<_pos;i++)
_vector[i]=tvector[i];
delete [] tvector;
}
_size = size;
_pos = size;
}
#ifdef DEBUG if(dcnt < 20) { CStaticDebug::WriteInfo(_L("resize2:")); CStaticDebug::WriteInt(size); CStaticDebug::WriteIntN(_pos); }#endif}
FileWvInVector::~FileWvInVector()
{
/* if(_size>0)
delete [] _vector;*/
}
FileWvIn*& FileWvInVector::operator[]( unsigned long idx )
{
if( idx >= 0 && idx < _pos )
return _vector[idx];
else
{
return iErr; // Error returns -17.0;
}
}
void FileWvInVector::push_back(FileWvIn *t)
{
#ifdef DEBUG3 if(dcnt < 20) { CStaticDebug::WriteInfo(_L("pb:")); CStaticDebug::WriteReal(t); CStaticDebug::WriteInfo(_L(":")); CStaticDebug::WriteIntN(_pos); dcnt ++; }#endif
if(_pos<_size)
_vector[_pos++]=t;
else
{
this->resize(_size+1);
_vector[_pos-1]=t;
}
}
const int FileWvInVector::size()
{
return _pos;
}
/*
// FILE replacement SYMBFILE
SYMBFILE::SYMBFILE() : _pos(0)
{
}
SYMBFILE::~SYMBFILE()
{
iFile.Flush();
iFile.Close();
iRFs.Close();
}
int SYMBFILE::getMode(const char* mode
int SYMBFILE::open(const char* fname, const char* fmode)
{
TPtr8 sname = fname;
return iFile.Open(iRFs, sname, smode);
}
int SYMBFILE::seek(long offset, int origin)
{
_pos = offset;
return iFile.Seek(smode, _pos);
}
long SYMBFILE::read(void *buffer, long size, long count)
{
}
long SYMBFILE::write()
{
}
long SYMBFILE::tell()
{
return _pos;
}
// Function interface (wrap)
int fclose( SYMBFILE *stream ) { return stream->close(); }
int fseek( SYMBFILE *stream, long offset, int origin ) { return stream->seek(offset, origin); }
size_t fread( void *buffer, size_t size, size_t count, SYMBFILE *stream ) { return stream->read(buffer,size, count); }
size_t fwrite( const void *buffer, size_t size, size_t count, SYMBFILE *stream ) { return stream->write(buffer,size,count); }
long ftell( SYMBFILE *stream ) { return stream->tell(); }
SYMBFILE *fopen( const char *filename, const char *mode )
{
return new (ELeave) SYMBFILE(filename, mode);
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -