// File: /workspace/github_cpp_makefile_star2_O2/myudelson[P]hmm-scalable/FitBit.cpp
// Function: FitBit::~FitBit()
FitBit::~FitBit() {
//    if(this->pi != NULL) free(this->PI); // these are usually linked
//    if(this->A != NULL) free2D<NUMBER>(this->A, this->nS); // these are usually linked
//    if(this->B != NULL) free2D<NUMBER>(this->B, this->nS); // these are usually linked
    if(this->PIm1 != NULL) free(this->PIm1);
    if(this->Am1 != NULL) free2D<NUMBER>(this->Am1, (NDAT)this->nS);
    if(this->Bm1 != NULL) free2D<NUMBER>(this->Bm1, (NDAT)this->nS);
    if(this->PIm2 != NULL) free(this->PIm2);
    if(this->Am2 != NULL) free2D<NUMBER>(this->Am2, (NDAT)this->nS);
    if(this->Bm2 != NULL) free2D<NUMBER>(this->Bm2, (NDAT)this->nS);
    if(this->gradPI != NULL) free(this->gradPI);
    if(this->gradA != NULL) free2D<NUMBER>(this->gradA, (NDAT)this->nS);
    if(this->gradB != NULL) free2D<NUMBER>(this->gradB, (NDAT)this->nS);
    if(this->gradPIm1 != NULL) free(this->gradPIm1);
    if(this->gradAm1 != NULL) free2D<NUMBER>(this->gradAm1, (NDAT)this->nS);
    if(this->gradBm1 != NULL) free2D<NUMBER>(this->gradBm1, (NDAT)this->nS);
    if(this->gradPIcopy != NULL) free(this->gradPIcopy);
    if(this->gradAcopy != NULL) free2D<NUMBER>(this->gradAcopy, (NDAT)this->nS);
    if(this->gradBcopy != NULL) free2D<NUMBER>(this->gradBcopy, (NDAT)this->nS);
    if(this->PIcopy != NULL) free(this->PIcopy);
    if(this->Acopy != NULL) free2D<NUMBER>(this->Acopy, (NDAT)this->nS);
    if(this->Bcopy != NULL) free2D<NUMBER>(this->Bcopy, (NDAT)this->nS);
    if(this->dirPI != NULL) free(this->dirPI);
    if(this->dirA != NULL) free2D<NUMBER>(this->dirA, (NDAT)this->nS);
    if(this->dirB != NULL) free2D<NUMBER>(this->dirB, (NDAT)this->nS);
    if(this->dirPIm1 != NULL) free(this->dirPIm1);
    if(this->dirAm1 != NULL) free2D<NUMBER>(this->dirAm1, (NDAT)this->nS);
    if(this->dirBm1 != NULL) free2D<NUMBER>(this->dirBm1, (NDAT)this->nS);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x28(%rdi), %rdi
callq 0x4290
movq 0x30(%rbx), %rdi
testq %rdi, %rdi
je 0x8291
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0x38(%rbx), %rdi
testq %rdi, %rdi
je 0x82a3
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0x40(%rbx), %rdi
callq 0x4290
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
je 0x82be
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0x50(%rbx), %rdi
testq %rdi, %rdi
je 0x82d0
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0x58(%rbx), %rdi
callq 0x4290
movq 0x60(%rbx), %rdi
testq %rdi, %rdi
je 0x82eb
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0x68(%rbx), %rdi
testq %rdi, %rdi
je 0x82fd
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0x70(%rbx), %rdi
callq 0x4290
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0x8318
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0x80(%rbx), %rdi
testq %rdi, %rdi
je 0x832d
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0x88(%rbx), %rdi
callq 0x4290
movq 0x90(%rbx), %rdi
testq %rdi, %rdi
je 0x834e
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0x98(%rbx), %rdi
testq %rdi, %rdi
je 0x8363
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0xa0(%rbx), %rdi
callq 0x4290
movq 0xa8(%rbx), %rdi
testq %rdi, %rdi
je 0x8384
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0xb0(%rbx), %rdi
testq %rdi, %rdi
je 0x8399
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0xb8(%rbx), %rdi
callq 0x4290
movq 0xc0(%rbx), %rdi
testq %rdi, %rdi
je 0x83ba
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0xc8(%rbx), %rdi
testq %rdi, %rdi
je 0x83cf
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0xd0(%rbx), %rdi
callq 0x4290
movq 0xd8(%rbx), %rdi
testq %rdi, %rdi
je 0x83f0
movsbl 0x1(%rbx), %esi
callq 0x7f2c
movq 0xe0(%rbx), %rdi
testq %rdi, %rdi
je 0x8406
movsbl 0x1(%rbx), %esi
popq %rbx
jmp 0x7f2c
popq %rbx
retq