This commit is contained in:
2024-08-07 09:12:07 -04:00
parent ca445435a0
commit fdfadd5c7e
1021 changed files with 73601 additions and 0 deletions

15
cashflow/BCCW32.CFG Normal file
View File

@@ -0,0 +1,15 @@
-R
-v
-vi
-H
-H=cashflow.csm
-H-
-4
-x-
-xd-
-RT-
-Ot
-Z
-O
-Ol
-W

109
cashflow/CALCDLG.CPP Normal file
View File

@@ -0,0 +1,109 @@
#include <cashflow/calcdlg.hpp>
#include <cashflow/cashdefs.hpp>
#include <cashflow/cashflow.hpp>
#include <cashflow/ppydlg.hpp>
#include <cashflow/graphwnd.hpp>
#include <fpsheet/fpsheet.hpp>
#include <common/stdio.hpp>
#include <common/crsctrl.hpp>
CallbackData::ReturnType CalcDlg::initHandler(CallbackData &/*someCallbackData*/)
{
mlpGraphWindow=new GraphWindow(*this,Rect(3,254,558,146));
mlpCalcThread=new CalcThread();
mlpCalcSheet=new FPSheet(*this,360,(Factor-IssBal)+1,Rect(xPos,yPos,cxPos,cyPos),mFont);
mlpCalcSheet->show();
setColumnTitles();
setColumnTypes();
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType CalcDlg::destroyHandler(CallbackData &/*someCallbackData*/)
{
if(mlpCalcThread){delete mlpCalcThread;mlpCalcThread=0;}
if(mlpCalcSheet){delete mlpCalcSheet;mlpCalcSheet=0;}
if(mlpGraphWindow){delete mlpGraphWindow;mlpGraphWindow=0;}
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType CalcDlg::closeHandler(CallbackData &/*someCallbackData*/)
{
endDialog(TRUE);
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType CalcDlg::commandHandler(CallbackData &someCallbackData)
{
switch(someCallbackData.wmCommandID())
{
case IDCANCEL :
endDialog(FALSE);
break;
case IDOK :
generateFlows();
break;
case CALC_PREPAYMENTS :
if(sendMessage(CALC_PREPAYMENTS,BM_GETCHECK,0,0L))
{
handlePrepayments();
sendMessage(CALC_PREPAYMENTS,BM_SETCHECK,0,0L);
}
break;
case CALC_TERM :
break;
case CALC_COUPON :
break;
case CALC_PRINCIPAL :
break;
case CALC_CALCULATE :
generateFlows();
break;
}
return (CallbackData::ReturnType)FALSE;
}
void CalcDlg::setColumnTitles(void)
{
mlpCalcSheet->setColumnTitle(IssBal,String("IssBal"));
mlpCalcSheet->setColumnTitle(SMM,String("SMM"));
mlpCalcSheet->setColumnTitle(MtgPay,String("MtgPay"));
mlpCalcSheet->setColumnTitle(NetIntPay,String("NetIntPay"));
mlpCalcSheet->setColumnTitle(GrossInt,String("GrossInt"));
mlpCalcSheet->setColumnTitle(SchPrn,String("SchPrn"));
mlpCalcSheet->setColumnTitle(Prepay,String("Prepay"));
mlpCalcSheet->setColumnTitle(TotPrin,String("TotPrin"));
mlpCalcSheet->setColumnTitle(Cashflow,String("Cashflow"));
mlpCalcSheet->setColumnTitle(Factor,String("Factor"));
mlpCalcSheet->setColumnWidth(IssBal,9);
mlpCalcSheet->setColumnWidth(GrossInt,9);
mlpCalcSheet->setColumnWidth(Factor,9);
}
void CalcDlg::setColumnTypes(void)
{
Block<ColumnType> columnTypes;
columnTypes.insert(&ColumnType(IssBal,ColumnType::Money,"#########.##"));
columnTypes.insert(&ColumnType(SMM,ColumnType::Float,"#.########"));
columnTypes.insert(&ColumnType(MtgPay,ColumnType::Money,"#########.##"));
columnTypes.insert(&ColumnType(NetIntPay,ColumnType::Money,"#########.##"));
columnTypes.insert(&ColumnType(GrossInt,ColumnType::Money,"#########.##"));
columnTypes.insert(&ColumnType(SchPrn,ColumnType::Money,"#########.##"));
columnTypes.insert(&ColumnType(Prepay,ColumnType::Money,"#########.##"));
columnTypes.insert(&ColumnType(TotPrin,ColumnType::Money,"#########.##"));
columnTypes.insert(&ColumnType(Cashflow,ColumnType::Money,"#########.##"));
columnTypes.insert(&ColumnType(Factor,ColumnType::Float,"#.#########"));
mlpCalcSheet->setColumnType(columnTypes);
}
void CalcDlg::handlePrepayments(void)
{
PPYDlg ppyDlg;
if(ppyDlg.createDialog(*this,mPrePay))generateFlows();
}
void CalcDlg::generateFlows(void)
{
mlpCalcThread->startCalc(*this);
}

81
cashflow/CALCDLG.HPP Normal file
View File

@@ -0,0 +1,81 @@
#ifndef _CASHFLOW_CALCDLG_HPP_
#define _CASHFLOW_CALCDLG_HPP_
#ifndef _COMMON_DWINDOW_HPP_
#include <common/dwindow.hpp>
#endif
#ifndef _COMMON_FONT_HPP_
#include <common/font.hpp>
#endif
#ifndef _CASHFLOW_PREPAY_HPP_
#include <cashflow/prepay.hpp>
#endif
#ifndef _CASHFLOW_CALCTHREAD_HPP_
#include <cashflow/calcthrd.hpp>
#endif
class FPSheet;
class GraphWindow;
class CalcDlg : private DWindow
{
public:
friend class CalcThread;
CalcDlg(void);
virtual ~CalcDlg();
void createDialog(HWND hParent);
private:
enum{xPos=2,yPos=15,cxPos=315,cyPos=45};
enum {IssBal,SMM,MtgPay,NetIntPay,GrossInt,SchPrn,Prepay,TotPrin,Cashflow,Factor};
CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData);
CallbackData::ReturnType initHandler(CallbackData &someCallbackData);
CallbackData::ReturnType commandHandler(CallbackData &someCallbackData);
CallbackData::ReturnType closeHandler(CallbackData &someCallbackData);
void handlePrepayments(void);
void setColumnTitles(void);
void setColumnTypes(void);
void generateFlows(void);
Callback<CalcDlg> mCommandHandler;
Callback<CalcDlg> mDestroyHandler;
Callback<CalcDlg> mInitHandler;
Callback<CalcDlg> mCloseHandler;
FPSheet *mlpCalcSheet;
CalcThread *mlpCalcThread;
GraphWindow *mlpGraphWindow;
PrePay mPrePay;
Font mFont;
};
#pragma warning(disable:4355)
inline
CalcDlg::CalcDlg(void)
: mlpCalcSheet(0), mlpCalcThread(0), mFont("Helv",6),
mlpGraphWindow(0)
{
mDestroyHandler.setCallback(this,&CalcDlg::destroyHandler);
mInitHandler.setCallback(this,&CalcDlg::initHandler);
mCommandHandler.setCallback(this,&CalcDlg::commandHandler);
mCloseHandler.setCallback(this,&CalcDlg::closeHandler);
insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
insertHandler(VectorHandler::InitDialogHandler,&mInitHandler);
insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
insertHandler(VectorHandler::CloseHandler,&mCloseHandler);
}
#pragma warning(default:4355)
inline
CalcDlg::~CalcDlg()
{
removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
removeHandler(VectorHandler::InitDialogHandler,&mInitHandler);
removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
removeHandler(VectorHandler::CloseHandler,&mCloseHandler);
}
inline
void CalcDlg::createDialog(HWND hParent)
{
HINSTANCE hInstance((HINSTANCE)::GetWindowLong(hParent,GWL_HINSTANCE));
::DialogBoxParam(hInstance,(LPSTR)"Cashflow",hParent,DWindow::DlgProc,(LPARAM)(DWindow*)this);
}
#endif

87
cashflow/CALCTHRD.CPP Normal file
View File

@@ -0,0 +1,87 @@
#include <common/stdio.hpp>
#include <cashflow/calcthrd.hpp>
#include <cashflow/calcdlg.hpp>
#include <cashflow/cashflow.hpp>
#include <cashflow/cashdefs.hpp>
#include <cashflow/ppydlg.hpp>
#include <cashflow/graphwnd.hpp>
#include <fpsheet/fpsheet.hpp>
#include <common/stdio.hpp>
#include <common/crsctrl.hpp>
DWORD CalcThread::threadHandler(ThreadMessage &someThreadMessage)
{
switch(someThreadMessage.message())
{
case ThreadMessage::TM_CREATE :
break;
case ThreadMessage::TM_DESTROY :
break;
case ThreadMessage::TM_USER :
if(someThreadMessage.userDataOne()==CalcStart)
{
mCalcMutex.requestMutex();
performCalc(*(CalcDlg*)someThreadMessage.userDataTwo());
mCalcMutex.releaseMutex();
}
break;
}
return FALSE;
}
void CalcThread::startCalc(CalcDlg &calcDlg)
{
mIsInReset=TRUE;
mCalcMutex.requestMutex();
mIsInReset=FALSE;
ThreadMessage startMessage(ThreadMessage::TM_USER,CalcThread::CalcStart,(DWORD)&calcDlg);
postMessage(startMessage);
mCalcMutex.releaseMutex();
}
void CalcThread::performCalc(CalcDlg &calcDlg)
{
Block<PureCashFlow> cashFlows;
PurePassThru passThru;
CashFlow cashFlow;
String trmString;
String prnString;
String cpnString;
size_t numFlows;
calcDlg.getText(CALC_TERM,trmString);
calcDlg.getText(CALC_PRINCIPAL,prnString);
calcDlg.getText(CALC_COUPON,cpnString);
if(trmString.isNull()||prnString.isNull()||cpnString.isNull()){::MessageBeep(0);return;}
passThru.issBal(::atof((LPSTR)prnString));
passThru.wac(::atof((LPSTR)cpnString));
passThru.coupon(::atof((LPSTR)cpnString));
passThru.wam(::atol((LPSTR)trmString));
passThru.origTerm(::atol((LPSTR)trmString));
passThru.psa(0.00);
if(calcDlg.mPrePay.amount())cashFlow.generateCashFlows(passThru,cashFlows,calcDlg.mPrePay);
else cashFlow.generateCashFlows(passThru,cashFlows);
calcDlg.mlpGraphWindow->showFlows(cashFlows,::atol((LPSTR)trmString));
numFlows=cashFlows.size();
calcDlg.mlpCalcSheet->clearData();
calcDlg.mlpCalcSheet->setCurrentCell(1,1);
for(short itemIndex=0;itemIndex<numFlows;itemIndex++)
{
Block<String> itemStrings;
if(mIsInReset)break;
cashFlows[itemIndex].itemStrings(itemStrings);
calcDlg.mlpCalcSheet->setCellData(itemIndex,CalcDlg::IssBal,itemStrings[CalcDlg::IssBal]);
calcDlg.mlpCalcSheet->setCellData(itemIndex,CalcDlg::SMM,itemStrings[CalcDlg::SMM]);
calcDlg.mlpCalcSheet->setCellData(itemIndex,CalcDlg::MtgPay,itemStrings[CalcDlg::MtgPay]);
calcDlg.mlpCalcSheet->setCellData(itemIndex,CalcDlg::NetIntPay,itemStrings[CalcDlg::NetIntPay]);
calcDlg.mlpCalcSheet->setCellData(itemIndex,CalcDlg::GrossInt,itemStrings[CalcDlg::GrossInt]);
calcDlg.mlpCalcSheet->setCellData(itemIndex,CalcDlg::SchPrn,itemStrings[CalcDlg::SchPrn]);
calcDlg.mlpCalcSheet->setCellData(itemIndex,CalcDlg::Prepay,itemStrings[CalcDlg::Prepay]);
calcDlg.mlpCalcSheet->setCellData(itemIndex,CalcDlg::TotPrin,itemStrings[CalcDlg::TotPrin]);
calcDlg.mlpCalcSheet->setCellData(itemIndex,CalcDlg::Cashflow,itemStrings[CalcDlg::Cashflow]);
calcDlg.mlpCalcSheet->setCellData(itemIndex,CalcDlg::Factor,itemStrings[CalcDlg::Factor]);
}
::SetFocus(calcDlg.mlpCalcSheet->getHandle());
return;
}

61
cashflow/CALCTHRD.HPP Normal file
View File

@@ -0,0 +1,61 @@
#ifndef _CASHFLOW_CALCTHREAD_HPP_
#define _CASHFLOW_CALCTHREAD_HPP_
#ifndef _THREAD_MESSAGETHREAD_HPP_
#include <thread/mthread.hpp>
#endif
class CalcDlg;
class GraphWindow;
class CalcThread : public MessageThread
{
public:
enum{CalcStart};
CalcThread(void);
virtual ~CalcThread();
void startCalc(CalcDlg &calcDlg);
private:
CalcThread(const CalcThread &someCalcThread);
CalcThread &operator=(const CalcThread &someCalcThread);
DWORD threadHandler(ThreadMessage &someThreadMessage);
void performCalc(CalcDlg &calcDlg);
ThreadCallback<CalcThread> mThreadHandler;
WORD mIsInReset;
Mutex mCalcMutex;
};
#pragma warning(disable:4355)
inline
CalcThread::CalcThread(void)
: mCalcMutex("CalcMutex"), mIsInReset(FALSE)
{
mThreadHandler.setCallback(this,&CalcThread::threadHandler);
insertHandler(&mThreadHandler);
}
#pragma warning(default:4355)
inline
CalcThread::CalcThread(const CalcThread &someCalcThread)
: mCalcMutex("CalcMutex"), mIsInReset(FALSE)
{ // no implementation
*this=someCalcThread;
}
inline
CalcThread::~CalcThread()
{
mIsInReset=TRUE;
mCalcMutex.requestMutex();
mCalcMutex.releaseMutex();
stop();
removeHandler(&mThreadHandler);
}
inline
CalcThread &CalcThread::operator=(const CalcThread &/*someCalcThread*/)
{ // no implementation
return *this;
}
#endif

4
cashflow/CASHDEFS.HPP Normal file
View File

@@ -0,0 +1,4 @@
#ifndef _CASHFLOW_CASHDEFS_HPP_
#define _CASHFLOW_CASHDEFS_HPP_
#include <cashflow/cashflow.h>
#endif

860
cashflow/CASHFLOW.BAK Normal file
View File

@@ -0,0 +1,860 @@
# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
!IF "$(CFG)" == ""
CFG=cashflow - Win32 Debug
!MESSAGE No configuration specified. Defaulting to cashflow - Win32 Debug.
!ENDIF
!IF "$(CFG)" != "cashflow - Win32 Release" && "$(CFG)" !=\
"cashflow - Win32 Debug"
!MESSAGE Invalid configuration "$(CFG)" specified.
!MESSAGE You can specify a configuration when running NMAKE on this makefile
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "Cashflow.mak" CFG="cashflow - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "cashflow - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "cashflow - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
!ERROR An invalid configuration is specified.
!ENDIF
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
################################################################################
# Begin Project
# PROP Target_Last_Scanned "cashflow - Win32 Debug"
MTL=mktyplib.exe
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "cashflow - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
OUTDIR=.\Release
INTDIR=.\Release
ALL : "$(OUTDIR)\Cashflow.exe"
CLEAN :
-@erase "$(INTDIR)\Calcdlg.obj"
-@erase "$(INTDIR)\Calcthrd.obj"
-@erase "$(INTDIR)\Cashflow.obj"
-@erase "$(INTDIR)\Cashflow.res"
-@erase "$(INTDIR)\graph3d.obj"
-@erase "$(INTDIR)\graphwnd.obj"
-@erase "$(INTDIR)\Main.obj"
-@erase "$(INTDIR)\Ppydlg.obj"
-@erase "$(INTDIR)\Purecflo.obj"
-@erase "$(INTDIR)\Stdtmpl.obj"
-@erase "$(OUTDIR)\Cashflow.exe"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS"\
/Fp"$(INTDIR)/Cashflow.pch" /YX /Fo"$(INTDIR)/" /c
CPP_OBJS=.\Release/
CPP_SBRS=.\.
# ADD BASE MTL /nologo /D "NDEBUG" /win32
# ADD MTL /nologo /D "NDEBUG" /win32
MTL_PROJ=/nologo /D "NDEBUG" /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
RSC_PROJ=/l 0x409 /fo"$(INTDIR)/Cashflow.res" /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
BSC32_FLAGS=/nologo /o"$(OUTDIR)/Cashflow.bsc"
BSC32_SBRS= \
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
odbccp32.lib /nologo /subsystem:windows /incremental:no\
/pdb:"$(OUTDIR)/Cashflow.pdb" /machine:I386 /out:"$(OUTDIR)/Cashflow.exe"
LINK32_OBJS= \
"$(INTDIR)\Calcdlg.obj" \
"$(INTDIR)\Calcthrd.obj" \
"$(INTDIR)\Cashflow.obj" \
"$(INTDIR)\Cashflow.res" \
"$(INTDIR)\graph3d.obj" \
"$(INTDIR)\graphwnd.obj" \
"$(INTDIR)\Main.obj" \
"$(INTDIR)\Ppydlg.obj" \
"$(INTDIR)\Purecflo.obj" \
"$(INTDIR)\Stdtmpl.obj" \
"..\exe\fpsheet.lib" \
"..\exe\mscommon.lib" \
"..\exe\msengine.lib" \
"..\exe\msthread.lib"
"$(OUTDIR)\Cashflow.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "msvcobj"
# PROP Intermediate_Dir "msvcobj"
# PROP Target_Dir ""
OUTDIR=.\msvcobj
INTDIR=.\msvcobj
ALL : "..\exe\cashflow.exe"
CLEAN :
-@erase "$(INTDIR)\Calcdlg.obj"
-@erase "$(INTDIR)\Calcthrd.obj"
-@erase "$(INTDIR)\Cashflow.obj"
-@erase "$(INTDIR)\Cashflow.res"
-@erase "$(INTDIR)\graph3d.obj"
-@erase "$(INTDIR)\graphwnd.obj"
-@erase "$(INTDIR)\Main.obj"
-@erase "$(INTDIR)\Ppydlg.obj"
-@erase "$(INTDIR)\Purecflo.obj"
-@erase "$(INTDIR)\Stdtmpl.obj"
-@erase "$(OUTDIR)\cashflow.pdb"
-@erase "..\exe\cashflow.exe"
-@erase "..\exe\cashflow.ilk"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /Zp1 /MTd /Z7 /O2 /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__FLAT__" /D "STRICT" /Fp"c:\work\exe\msvc42.pch" /YX"windows.h" /c
CPP_PROJ=/nologo /Zp1 /MTd /Z7 /O2 /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D\
"__FLAT__" /D "STRICT" /Fp"c:\work\exe\msvc42.pch" /YX"windows.h"\
/Fo"$(INTDIR)/" /c
CPP_OBJS=.\msvcobj/
CPP_SBRS=.\.
# ADD BASE MTL /nologo /D "_DEBUG" /win32
# ADD MTL /nologo /D "_DEBUG" /win32
MTL_PROJ=/nologo /D "_DEBUG" /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
RSC_PROJ=/l 0x409 /fo"$(INTDIR)/Cashflow.res" /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
BSC32_FLAGS=/nologo /o"$(OUTDIR)/Cashflow.bsc"
BSC32_SBRS= \
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib uuid.lib /nologo /subsystem:windows /debug /machine:I386 /out:"..\exe\cashflow.exe"
# SUBTRACT LINK32 /pdb:none
LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
advapi32.lib shell32.lib uuid.lib /nologo /subsystem:windows /incremental:yes\
/pdb:"$(OUTDIR)/cashflow.pdb" /debug /machine:I386 /out:"..\exe\cashflow.exe"
LINK32_OBJS= \
"$(INTDIR)\Calcdlg.obj" \
"$(INTDIR)\Calcthrd.obj" \
"$(INTDIR)\Cashflow.obj" \
"$(INTDIR)\Cashflow.res" \
"$(INTDIR)\graph3d.obj" \
"$(INTDIR)\graphwnd.obj" \
"$(INTDIR)\Main.obj" \
"$(INTDIR)\Ppydlg.obj" \
"$(INTDIR)\Purecflo.obj" \
"$(INTDIR)\Stdtmpl.obj" \
"..\exe\fpsheet.lib" \
"..\exe\mscommon.lib" \
"..\exe\msengine.lib" \
"..\exe\msthread.lib"
"..\exe\cashflow.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ENDIF
.c{$(CPP_OBJS)}.obj:
$(CPP) $(CPP_PROJ) $<
.cpp{$(CPP_OBJS)}.obj:
$(CPP) $(CPP_PROJ) $<
.cxx{$(CPP_OBJS)}.obj:
$(CPP) $(CPP_PROJ) $<
.c{$(CPP_SBRS)}.sbr:
$(CPP) $(CPP_PROJ) $<
.cpp{$(CPP_SBRS)}.sbr:
$(CPP) $(CPP_PROJ) $<
.cxx{$(CPP_SBRS)}.sbr:
$(CPP) $(CPP_PROJ) $<
################################################################################
# Begin Target
# Name "cashflow - Win32 Release"
# Name "cashflow - Win32 Debug"
!IF "$(CFG)" == "cashflow - Win32 Release"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
!ENDIF
################################################################################
# Begin Source File
SOURCE=.\Stdtmpl.cpp
!IF "$(CFG)" == "cashflow - Win32 Release"
DEP_CPP_STDTM=\
{$(INCLUDE)}"\.\Calcdlg.hpp"\
{$(INCLUDE)}"\.\Calcthrd.hpp"\
{$(INCLUDE)}"\.\Ppydlg.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Dwindow.hpp"\
{$(INCLUDE)}"\Common\Filetime.hpp"\
{$(INCLUDE)}"\Common\Fixup.hpp"\
{$(INCLUDE)}"\Common\Font.hpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Point.hpp"\
{$(INCLUDE)}"\Common\Pvector.hpp"\
{$(INCLUDE)}"\Common\Pvector.tpp"\
{$(INCLUDE)}"\Common\Stdio.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Systime.hpp"\
{$(INCLUDE)}"\Common\Types.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\Common\Winnt.hpp"\
{$(INCLUDE)}"\Thread\Context.hpp"\
{$(INCLUDE)}"\Thread\Event.hpp"\
{$(INCLUDE)}"\Thread\Msgqueue.hpp"\
{$(INCLUDE)}"\Thread\Mthread.hpp"\
{$(INCLUDE)}"\Thread\Mutex.hpp"\
{$(INCLUDE)}"\Thread\Ptcllbck.hpp"\
{$(INCLUDE)}"\Thread\Qthread.hpp"\
{$(INCLUDE)}"\Thread\Savearea.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.tpp"\
{$(INCLUDE)}"\Thread\Thmsg.hpp"\
{$(INCLUDE)}"\Thread\Thread.hpp"\
"$(INTDIR)\Stdtmpl.obj" : $(SOURCE) $(DEP_CPP_STDTM) "$(INTDIR)"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
DEP_CPP_STDTM=\
{$(INCLUDE)}"\.\Calcdlg.hpp"\
{$(INCLUDE)}"\.\Calcthrd.hpp"\
{$(INCLUDE)}"\.\Ppydlg.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Dwindow.hpp"\
{$(INCLUDE)}"\Common\Filetime.hpp"\
{$(INCLUDE)}"\Common\Fixup.hpp"\
{$(INCLUDE)}"\Common\Font.hpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Point.hpp"\
{$(INCLUDE)}"\Common\Pvector.hpp"\
{$(INCLUDE)}"\Common\Pvector.tpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Systime.hpp"\
{$(INCLUDE)}"\Common\Types.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\Thread\Mthread.hpp"\
{$(INCLUDE)}"\Thread\Ptcllbck.hpp"\
{$(INCLUDE)}"\Thread\Qthread.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.tpp"\
{$(INCLUDE)}"\Thread\Thmsg.hpp"\
"$(INTDIR)\Stdtmpl.obj" : $(SOURCE) $(DEP_CPP_STDTM) "$(INTDIR)"
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Calcthrd.cpp
!IF "$(CFG)" == "cashflow - Win32 Release"
DEP_CPP_CALCT=\
"..\..\Parts\tbpro32\Include\Ssdll.h"\
{$(INCLUDE)}"\.\Calcdlg.hpp"\
{$(INCLUDE)}"\.\Calcthrd.hpp"\
{$(INCLUDE)}"\.\Cashdefs.hpp"\
{$(INCLUDE)}"\.\Cashflow.h"\
{$(INCLUDE)}"\.\Cashflow.hpp"\
{$(INCLUDE)}"\.\Graphwnd.hpp"\
{$(INCLUDE)}"\.\Passthru.hpp"\
{$(INCLUDE)}"\.\Ppydlg.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Crsctrl.hpp"\
{$(INCLUDE)}"\Common\Dwindow.hpp"\
{$(INCLUDE)}"\Common\Filetime.hpp"\
{$(INCLUDE)}"\Common\Font.hpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\common\gdipoint.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Point.hpp"\
{$(INCLUDE)}"\Common\Pointer.hpp"\
{$(INCLUDE)}"\Common\Rect.hpp"\
{$(INCLUDE)}"\Common\Stdio.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Systime.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Window.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\Common\Winnt.hpp"\
{$(INCLUDE)}"\Fpsheet\Coltype.hpp"\
{$(INCLUDE)}"\Fpsheet\Fpapi.hpp"\
{$(INCLUDE)}"\Fpsheet\Fpsheet.hpp"\
{$(INCLUDE)}"\Fpsheet\Menuitem.hpp"\
{$(INCLUDE)}"\Tbpro32\Ssdll.hpp"\
{$(INCLUDE)}"\Thread\Context.hpp"\
{$(INCLUDE)}"\Thread\Event.hpp"\
{$(INCLUDE)}"\Thread\Msgqueue.hpp"\
{$(INCLUDE)}"\Thread\Mthread.hpp"\
{$(INCLUDE)}"\Thread\Mutex.hpp"\
{$(INCLUDE)}"\Thread\Ptcllbck.hpp"\
{$(INCLUDE)}"\Thread\Qthread.hpp"\
{$(INCLUDE)}"\Thread\Savearea.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.tpp"\
{$(INCLUDE)}"\Thread\Thmsg.hpp"\
{$(INCLUDE)}"\Thread\Thread.hpp"\
"$(INTDIR)\Calcthrd.obj" : $(SOURCE) $(DEP_CPP_CALCT) "$(INTDIR)"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
DEP_CPP_CALCT=\
"..\..\Parts\tbpro32\Include\Ssdll.h"\
{$(INCLUDE)}"\.\Calcdlg.hpp"\
{$(INCLUDE)}"\.\Calcthrd.hpp"\
{$(INCLUDE)}"\.\Cashdefs.hpp"\
{$(INCLUDE)}"\.\Cashflow.h"\
{$(INCLUDE)}"\.\Cashflow.hpp"\
{$(INCLUDE)}"\.\Graphwnd.hpp"\
{$(INCLUDE)}"\.\Passthru.hpp"\
{$(INCLUDE)}"\.\Ppydlg.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Crsctrl.hpp"\
{$(INCLUDE)}"\Common\Dwindow.hpp"\
{$(INCLUDE)}"\Common\Font.hpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\common\gdipoint.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Point.hpp"\
{$(INCLUDE)}"\Common\Pointer.hpp"\
{$(INCLUDE)}"\Common\Rect.hpp"\
{$(INCLUDE)}"\Common\Stdio.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Window.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\Fpsheet\Coltype.hpp"\
{$(INCLUDE)}"\Fpsheet\Fpapi.hpp"\
{$(INCLUDE)}"\Fpsheet\Fpsheet.hpp"\
{$(INCLUDE)}"\Fpsheet\Menuitem.hpp"\
{$(INCLUDE)}"\Tbpro32\Ssdll.hpp"\
{$(INCLUDE)}"\Thread\Mthread.hpp"\
{$(INCLUDE)}"\Thread\Qthread.hpp"\
"$(INTDIR)\Calcthrd.obj" : $(SOURCE) $(DEP_CPP_CALCT) "$(INTDIR)"
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Cashflow.cpp
DEP_CPP_CASHF=\
{$(INCLUDE)}"\.\Cashflow.hpp"\
{$(INCLUDE)}"\.\Passthru.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
"$(INTDIR)\Cashflow.obj" : $(SOURCE) $(DEP_CPP_CASHF) "$(INTDIR)"
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Cashflow.h
!IF "$(CFG)" == "cashflow - Win32 Release"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Cashflow.rc
DEP_RSC_CASHFL=\
{$(INCLUDE)}"\Ctype.h"\
{$(INCLUDE)}"\Dde.h"\
{$(INCLUDE)}"\Ddeml.h"\
{$(INCLUDE)}"\Dlgs.h"\
{$(INCLUDE)}"\Excpt.h"\
{$(INCLUDE)}"\Lzexpand.h"\
{$(INCLUDE)}"\Mmsystem.h"\
{$(INCLUDE)}"\Mswsock.h"\
{$(INCLUDE)}"\Nb30.h"\
{$(INCLUDE)}"\Poppack.h"\
{$(INCLUDE)}"\Pshpack1.h"\
{$(INCLUDE)}"\Pshpack2.h"\
{$(INCLUDE)}"\Pshpack4.h"\
{$(INCLUDE)}"\Rpc.h"\
{$(INCLUDE)}"\Rpcdce.h"\
{$(INCLUDE)}"\Rpcdcep.h"\
{$(INCLUDE)}"\Rpcnsi.h"\
{$(INCLUDE)}"\Rpcnterr.h"\
{$(INCLUDE)}"\Shellapi.h"\
{$(INCLUDE)}"\Stdarg.h"\
{$(INCLUDE)}"\String.h"\
{$(INCLUDE)}"\Winbase.h"\
{$(INCLUDE)}"\Wincon.h"\
{$(INCLUDE)}"\Wincrypt.h"\
{$(INCLUDE)}"\Windef.h"\
{$(INCLUDE)}"\Windows.h"\
{$(INCLUDE)}"\Winerror.h"\
{$(INCLUDE)}"\Wingdi.h"\
{$(INCLUDE)}"\Winnetwk.h"\
{$(INCLUDE)}"\Winnls.h"\
{$(INCLUDE)}"\Winnt.h"\
{$(INCLUDE)}"\Winperf.h"\
{$(INCLUDE)}"\Winreg.h"\
{$(INCLUDE)}"\Winspool.h"\
{$(INCLUDE)}"\Winuser.h"\
{$(INCLUDE)}"\Winver.h"\
"$(INTDIR)\Cashflow.res" : $(SOURCE) $(DEP_RSC_CASHFL) "$(INTDIR)"
$(RSC) $(RSC_PROJ) $(SOURCE)
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Main.cpp
DEP_CPP_MAIN_=\
{$(INCLUDE)}"\.\Calcdlg.hpp"\
{$(INCLUDE)}"\.\Calcthrd.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Dwindow.hpp"\
{$(INCLUDE)}"\Common\Filetime.hpp"\
{$(INCLUDE)}"\Common\Font.hpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Stdio.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Systime.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\Common\Winnt.hpp"\
{$(INCLUDE)}"\Thread\Context.hpp"\
{$(INCLUDE)}"\Thread\Event.hpp"\
{$(INCLUDE)}"\Thread\Msgqueue.hpp"\
{$(INCLUDE)}"\Thread\Mthread.hpp"\
{$(INCLUDE)}"\Thread\Mutex.hpp"\
{$(INCLUDE)}"\Thread\Ptcllbck.hpp"\
{$(INCLUDE)}"\Thread\Qthread.hpp"\
{$(INCLUDE)}"\Thread\Savearea.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.tpp"\
{$(INCLUDE)}"\Thread\Thmsg.hpp"\
{$(INCLUDE)}"\Thread\Thread.hpp"\
"$(INTDIR)\Main.obj" : $(SOURCE) $(DEP_CPP_MAIN_) "$(INTDIR)"
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Ppydlg.cpp
DEP_CPP_PPYDL=\
{$(INCLUDE)}"\.\Cashdefs.hpp"\
{$(INCLUDE)}"\.\Cashflow.h"\
{$(INCLUDE)}"\.\Ppydlg.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Dwindow.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Stdio.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
"$(INTDIR)\Ppydlg.obj" : $(SOURCE) $(DEP_CPP_PPYDL) "$(INTDIR)"
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Purecflo.cpp
DEP_CPP_PUREC=\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
"$(INTDIR)\Purecflo.obj" : $(SOURCE) $(DEP_CPP_PUREC) "$(INTDIR)"
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Calcdlg.cpp
DEP_CPP_CALCD=\
"..\..\Parts\tbpro32\Include\Ssdll.h"\
{$(INCLUDE)}"\.\Calcdlg.hpp"\
{$(INCLUDE)}"\.\Calcthrd.hpp"\
{$(INCLUDE)}"\.\Cashdefs.hpp"\
{$(INCLUDE)}"\.\Cashflow.h"\
{$(INCLUDE)}"\.\Cashflow.hpp"\
{$(INCLUDE)}"\.\Graphwnd.hpp"\
{$(INCLUDE)}"\.\Passthru.hpp"\
{$(INCLUDE)}"\.\Ppydlg.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Crsctrl.hpp"\
{$(INCLUDE)}"\Common\Dwindow.hpp"\
{$(INCLUDE)}"\Common\Filetime.hpp"\
{$(INCLUDE)}"\Common\Font.hpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\common\gdipoint.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Point.hpp"\
{$(INCLUDE)}"\Common\Pointer.hpp"\
{$(INCLUDE)}"\Common\Rect.hpp"\
{$(INCLUDE)}"\Common\Stdio.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Systime.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Window.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\Common\Winnt.hpp"\
{$(INCLUDE)}"\Fpsheet\Coltype.hpp"\
{$(INCLUDE)}"\Fpsheet\Fpapi.hpp"\
{$(INCLUDE)}"\Fpsheet\Fpsheet.hpp"\
{$(INCLUDE)}"\Fpsheet\Menuitem.hpp"\
{$(INCLUDE)}"\Tbpro32\Ssdll.hpp"\
{$(INCLUDE)}"\Thread\Context.hpp"\
{$(INCLUDE)}"\Thread\Event.hpp"\
{$(INCLUDE)}"\Thread\Msgqueue.hpp"\
{$(INCLUDE)}"\Thread\Mthread.hpp"\
{$(INCLUDE)}"\Thread\Mutex.hpp"\
{$(INCLUDE)}"\Thread\Ptcllbck.hpp"\
{$(INCLUDE)}"\Thread\Qthread.hpp"\
{$(INCLUDE)}"\Thread\Savearea.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.tpp"\
{$(INCLUDE)}"\Thread\Thmsg.hpp"\
{$(INCLUDE)}"\Thread\Thread.hpp"\
"$(INTDIR)\Calcdlg.obj" : $(SOURCE) $(DEP_CPP_CALCD) "$(INTDIR)"
# End Source File
################################################################################
# Begin Source File
SOURCE=\work\exe\mscommon.lib
!IF "$(CFG)" == "cashflow - Win32 Release"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=\work\exe\msthread.lib
!IF "$(CFG)" == "cashflow - Win32 Release"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=\work\exe\fpsheet.lib
!IF "$(CFG)" == "cashflow - Win32 Release"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=.\graphwnd.cpp
DEP_CPP_GRAPH=\
{$(INCLUDE)}"\.\Clrrect.hpp"\
{$(INCLUDE)}"\.\Graph3d.hpp"\
{$(INCLUDE)}"\.\Graphwnd.hpp"\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Bminfo.hpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Dib.hpp"\
{$(INCLUDE)}"\Common\Fixup.hpp"\
{$(INCLUDE)}"\Common\Gdata.hpp"\
{$(INCLUDE)}"\Common\Gdata.tpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\common\gdipoint.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Math.hpp"\
{$(INCLUDE)}"\Common\Palentry.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Pen.hpp"\
{$(INCLUDE)}"\Common\Point.hpp"\
{$(INCLUDE)}"\Common\Pointer.hpp"\
{$(INCLUDE)}"\Common\Purebmp.hpp"\
{$(INCLUDE)}"\Common\Purehdc.hpp"\
{$(INCLUDE)}"\Common\Purepal.hpp"\
{$(INCLUDE)}"\Common\Pvector.hpp"\
{$(INCLUDE)}"\Common\Pvector.tpp"\
{$(INCLUDE)}"\Common\Rect.hpp"\
{$(INCLUDE)}"\Common\Rgbcolor.hpp"\
{$(INCLUDE)}"\Common\Rgbquad.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Types.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Window.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\engine\angle.hpp"\
{$(INCLUDE)}"\engine\angle3d.hpp"\
{$(INCLUDE)}"\Engine\Dib3d.hpp"\
{$(INCLUDE)}"\Engine\Point3d.hpp"\
{$(INCLUDE)}"\Engine\Purevsys.hpp"\
{$(INCLUDE)}"\Engine\Rect3d.hpp"\
{$(INCLUDE)}"\Engine\Spacial.hpp"\
{$(INCLUDE)}"\Engine\Vector3d.hpp"\
{$(INCLUDE)}"\Engine\Viewsys.hpp"\
"$(INTDIR)\graphwnd.obj" : $(SOURCE) $(DEP_CPP_GRAPH) "$(INTDIR)"
# End Source File
################################################################################
# Begin Source File
SOURCE=\work\exe\msengine.lib
!IF "$(CFG)" == "cashflow - Win32 Release"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=.\graph3d.cpp
DEP_CPP_GRAPH3=\
{$(INCLUDE)}"\.\Graph3d.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Bminfo.hpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Dib.hpp"\
{$(INCLUDE)}"\Common\Fixup.hpp"\
{$(INCLUDE)}"\Common\Gdata.hpp"\
{$(INCLUDE)}"\Common\Gdata.tpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\common\gdipoint.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Math.hpp"\
{$(INCLUDE)}"\Common\Palentry.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Pen.hpp"\
{$(INCLUDE)}"\Common\Point.hpp"\
{$(INCLUDE)}"\Common\Purebmp.hpp"\
{$(INCLUDE)}"\Common\Purehdc.hpp"\
{$(INCLUDE)}"\Common\Purepal.hpp"\
{$(INCLUDE)}"\Common\Pvector.hpp"\
{$(INCLUDE)}"\Common\Pvector.tpp"\
{$(INCLUDE)}"\Common\Rect.hpp"\
{$(INCLUDE)}"\Common\Rgbcolor.hpp"\
{$(INCLUDE)}"\Common\Rgbquad.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Types.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\engine\angle.hpp"\
{$(INCLUDE)}"\engine\angle3d.hpp"\
{$(INCLUDE)}"\Engine\Dib3d.hpp"\
{$(INCLUDE)}"\Engine\Point3d.hpp"\
{$(INCLUDE)}"\Engine\Purevsys.hpp"\
{$(INCLUDE)}"\Engine\Viewsys.hpp"\
"$(INTDIR)\graph3d.obj" : $(SOURCE) $(DEP_CPP_GRAPH3) "$(INTDIR)"
# End Source File
# End Target
# End Project
################################################################################

163
cashflow/CASHFLOW.CPP Normal file
View File

@@ -0,0 +1,163 @@
#include <cashflow/cashflow.hpp>
WORD CashFlow::generateCashFlows(const PurePassThru &purePassThru,Block<PureCashFlow> &cashFlows)
{
double issBal(purePassThru.issBal());
double tempCPR;
short actualMonth;
short indexFlows;
cashFlows.remove();
indexFlows=cashFlows.size();
cashFlows.insert(&PureCashFlow());
for(short wam=purePassThru.wam();wam>0&&issBal>0.00;wam--)
{
actualMonth=(purePassThru.origTerm()-wam)+1;
if(actualMonth<=30)tempCPR=.002*(double)actualMonth;
else tempCPR=.06;
cashFlows[indexFlows].beginBal(issBal);
cashFlows[indexFlows].smm(1.00-::pow(1.00-(tempCPR*purePassThru.psa()/100.00),1.00/12.00));
if(!indexFlows)
{
cashFlows[indexFlows].mtgPay((issBal*(purePassThru.wac()/1200.00))/
(1.00-::pow(1.00/(1.00+(purePassThru.wac()/1200.00)),(double)wam)));
}
else cashFlows[indexFlows].mtgPay(cashFlows[indexFlows-1].mtgPay());
if(issBal<=cashFlows[indexFlows].mtgPay())cashFlows[indexFlows].mtgPay(issBal);
cashFlows[indexFlows].netIntPay(issBal*(purePassThru.coupon()/1200.00));
if(!indexFlows)cashFlows[indexFlows].grossIntPay(cashFlows[indexFlows].netIntPay());
else cashFlows[indexFlows].grossIntPay(cashFlows[indexFlows-1].grossIntPay()+cashFlows[indexFlows].netIntPay());
cashFlows[indexFlows].schedPrinPay(cashFlows[indexFlows].mtgPay()-cashFlows[indexFlows].netIntPay());
cashFlows[indexFlows].prepayment(0.00);
cashFlows[indexFlows].totPrin(cashFlows[indexFlows].schedPrinPay()+cashFlows[indexFlows].prepayment());
cashFlows[indexFlows].cashFlow(cashFlows[indexFlows].netIntPay()+cashFlows[indexFlows].totPrin());
cashFlows[indexFlows].factor(issBal/purePassThru.issBal());
issBal-=cashFlows[indexFlows].totPrin();
indexFlows=cashFlows.size();
if(1!=wam&&issBal>0.00)cashFlows.insert(&PureCashFlow());
}
return cashFlows.size();
}
WORD CashFlow::generateCashFlows(const PurePassThru &purePassThru,Block<PureCashFlow> &cashFlows,PrePay prePay)
{
double issBal(purePassThru.issBal());
double tempCPR;
short actualMonth;
short indexFlows;
cashFlows.remove();
indexFlows=cashFlows.size();
cashFlows.insert(&PureCashFlow());
for(short wam=purePassThru.wam();wam>0&&issBal>0.00;wam--)
{
actualMonth=(purePassThru.origTerm()-wam)+1;
if(actualMonth<=30)tempCPR=.002*(double)actualMonth;
else tempCPR=.06;
cashFlows[indexFlows].beginBal(issBal);
cashFlows[indexFlows].smm(1.00-::pow(1.00-(tempCPR*purePassThru.psa()/100.00),1.00/12.00));
if(!indexFlows)cashFlows[indexFlows].mtgPay((issBal*(purePassThru.wac()/1200.00))/
(1.00-::pow(1.00/(1.00+(purePassThru.wac()/1200.00)),(double)wam)));
else cashFlows[indexFlows].mtgPay(cashFlows[indexFlows-1].mtgPay());
if(issBal<=cashFlows[indexFlows].mtgPay())cashFlows[indexFlows].mtgPay(issBal);
cashFlows[indexFlows].netIntPay(issBal*(purePassThru.coupon()/1200.00));
if(!indexFlows)cashFlows[indexFlows].grossIntPay(cashFlows[indexFlows].netIntPay());
else cashFlows[indexFlows].grossIntPay(cashFlows[indexFlows-1].grossIntPay()+cashFlows[indexFlows].netIntPay());
cashFlows[indexFlows].schedPrinPay(cashFlows[indexFlows].mtgPay()-cashFlows[indexFlows].netIntPay());
cashFlows[indexFlows].prepayment(prePay.amount());
prePay.period(prePay.period()+1);
if(prePay.period()>prePay.frequency())
{
prePay.amount(prePay.amount()+prePay.increment());
prePay.period(1);
}
cashFlows[indexFlows].totPrin(cashFlows[indexFlows].schedPrinPay()+cashFlows[indexFlows].prepayment());
cashFlows[indexFlows].cashFlow(cashFlows[indexFlows].netIntPay()+cashFlows[indexFlows].totPrin());
cashFlows[indexFlows].factor(issBal/purePassThru.issBal());
issBal-=cashFlows[indexFlows].totPrin();
indexFlows=cashFlows.size();
if(1!=wam&&issBal>0.00)cashFlows.insert(&PureCashFlow());
}
return cashFlows.size();
}
WORD CashFlow::convergePSA(PurePassThru &purePassThru,double convergeFactor,double issueBal,short runMonths)
{
double cashFlowFactor;
double smallestDiff(999);
double tempDiff;
short closestPSA;
for(short psaValue=MinPSA;psaValue<MaxPSA;psaValue++)
{
purePassThru.psa(psaValue);
cashFlowFactor=factorFlows(purePassThru,issueBal,runMonths);
tempDiff=convergeFactor-cashFlowFactor;
if(tempDiff<0.00)tempDiff*=-1.00;
if(tempDiff<smallestDiff){smallestDiff=tempDiff;closestPSA=psaValue;}
}
return closestPSA;
}
WORD CashFlow::binaryPartitionPSA(PurePassThru &purePassThru,double convergeFactor,double issueBal,short runMonths)
{
double cashFlowFactor;
short psaFloor(MinPSA);
short psaCeiling(MaxPSA);
short psaCurr(MaxPSA/2);
short newCurr;
double threshold(.000025);
while(TRUE)
{
purePassThru.psa(psaCurr);
cashFlowFactor=factorFlows(purePassThru,issueBal,runMonths);
if(cashFlowFactor-threshold<=convergeFactor&&cashFlowFactor+threshold>=convergeFactor)return psaCurr;
if(cashFlowFactor>convergeFactor)
{
psaFloor=psaCurr;
newCurr=(psaCeiling+psaFloor)/2;
}
else
{
psaCeiling=psaCurr;
newCurr=(psaFloor+psaCeiling)/2;
}
if(newCurr==psaCurr)return psaCurr;
psaCurr=newCurr;
}
}
double CashFlow::factorFlows(const PurePassThru &purePassThru,double issueBalance,short runMonths)
{
double issBal(purePassThru.issBal());
Block<PureCashFlow> cashFlows;
double tempCPR;
short actualMonth;
short indexFlows;
indexFlows=cashFlows.size();
cashFlows.insert(&PureCashFlow());
for(short wam=purePassThru.wam();wam>=purePassThru.wam()-runMonths;wam--)
{
actualMonth=(purePassThru.origTerm()-wam)+1;
if(actualMonth<=30)tempCPR=.002*(double)actualMonth;
else tempCPR=.06;
cashFlows[indexFlows].beginBal(issBal);
cashFlows[indexFlows].smm(1.00-::pow(1.00-(tempCPR*purePassThru.psa()/100.00),1.00/12.00));
cashFlows[indexFlows].mtgPay((issBal*(purePassThru.wac()/1200.00))/
(1.00-::pow(1.00/(1.00+(purePassThru.wac()/1200.00)),(double)wam)));
cashFlows[indexFlows].netIntPay(issBal*(purePassThru.coupon()/1200.00));
cashFlows[indexFlows].grossIntPay(issBal*(purePassThru.wac()/1200.00));
cashFlows[indexFlows].schedPrinPay(cashFlows[indexFlows].mtgPay()-cashFlows[indexFlows].grossIntPay());
cashFlows[indexFlows].prepayment(cashFlows[indexFlows].smm()*(issBal-cashFlows[indexFlows].schedPrinPay()));
cashFlows[indexFlows].totPrin(cashFlows[indexFlows].schedPrinPay()+cashFlows[indexFlows].prepayment());
cashFlows[indexFlows].cashFlow(cashFlows[indexFlows].netIntPay()+cashFlows[indexFlows].totPrin());
cashFlows[indexFlows].factor(issBal/issueBalance);
issBal-=cashFlows[indexFlows].totPrin();
indexFlows=cashFlows.size();
if(1!=wam)cashFlows.insert(&PureCashFlow());
}
return cashFlows[runMonths].factor();
}

104
cashflow/CASHFLOW.DSW Normal file
View File

@@ -0,0 +1,104 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "bsptree"=..\bsptree\bsptree.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "cashflow"=.\cashflow.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name common
End Project Dependency
Begin Project Dependency
Project_Dep_Name engine
End Project Dependency
Begin Project Dependency
Project_Dep_Name fpsheet
End Project Dependency
Begin Project Dependency
Project_Dep_Name thread
End Project Dependency
Begin Project Dependency
Project_Dep_Name bsptree
End Project Dependency
}}}
###############################################################################
Project: "common"=..\common\common.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "engine"=..\engine\engine.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "fpsheet"=..\fpsheet\Fpsheet.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "thread"=..\thread\thread.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

10
cashflow/CASHFLOW.H Normal file
View File

@@ -0,0 +1,10 @@
#define PPY_FREQUENCY 103
#define PPY_INCREMENT 102
#define PPY_AMOUNT 101
#define CALC_PREPAYMENTS 104
#define CALC_CALCULATE 105
#define CALC_TERM 103
#define CALC_COUPON 102
#define CALC_PRINCIPAL 101

32
cashflow/CASHFLOW.HPP Normal file
View File

@@ -0,0 +1,32 @@
#ifndef _CASHFLOW_CASHFLOW_HPP_
#define _CASHFLOW_CASHFLOW_HPP_
#include <math.h>
#include <cashflow/passthru.hpp>
#include <cashflow/purecflo.hpp>
#include <cashflow/prepay.hpp>
#include <common/block.hpp>
class CashFlow
{
public:
CashFlow();
~CashFlow();
WORD generateCashFlows(const PurePassThru &somePurePassThru,Block<PureCashFlow> &cashFlows);
WORD generateCashFlows(const PurePassThru &purePassThru,Block<PureCashFlow> &cashFlows,PrePay somePrepay);
WORD convergePSA(PurePassThru &purePassThru,double convergeFactor,double issueBal,short runMonths);
WORD binaryPartitionPSA(PurePassThru &purePassThru,double convergeFactor,double issueBal,short runMonths);
private:
enum {MinPSA=0,MaxPSA=1600};
double factorFlows(const PurePassThru &purePassThru,double issueBalance,short runMonths);
};
inline
CashFlow::CashFlow()
{
}
inline
CashFlow::~CashFlow()
{
}
#endif

BIN
cashflow/CASHFLOW.IDE Normal file

Binary file not shown.

860
cashflow/CASHFLOW.MAK Normal file
View File

@@ -0,0 +1,860 @@
# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
!IF "$(CFG)" == ""
CFG=cashflow - Win32 Debug
!MESSAGE No configuration specified. Defaulting to cashflow - Win32 Debug.
!ENDIF
!IF "$(CFG)" != "cashflow - Win32 Release" && "$(CFG)" !=\
"cashflow - Win32 Debug"
!MESSAGE Invalid configuration "$(CFG)" specified.
!MESSAGE You can specify a configuration when running NMAKE on this makefile
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "Cashflow.mak" CFG="cashflow - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "cashflow - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "cashflow - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
!ERROR An invalid configuration is specified.
!ENDIF
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
################################################################################
# Begin Project
# PROP Target_Last_Scanned "cashflow - Win32 Debug"
MTL=mktyplib.exe
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "cashflow - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
OUTDIR=.\Release
INTDIR=.\Release
ALL : "$(OUTDIR)\Cashflow.exe"
CLEAN :
-@erase "$(INTDIR)\Calcdlg.obj"
-@erase "$(INTDIR)\Calcthrd.obj"
-@erase "$(INTDIR)\Cashflow.obj"
-@erase "$(INTDIR)\Cashflow.res"
-@erase "$(INTDIR)\graph3d.obj"
-@erase "$(INTDIR)\graphwnd.obj"
-@erase "$(INTDIR)\Main.obj"
-@erase "$(INTDIR)\Ppydlg.obj"
-@erase "$(INTDIR)\Purecflo.obj"
-@erase "$(INTDIR)\Stdtmpl.obj"
-@erase "$(OUTDIR)\Cashflow.exe"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS"\
/Fp"$(INTDIR)/Cashflow.pch" /YX /Fo"$(INTDIR)/" /c
CPP_OBJS=.\Release/
CPP_SBRS=.\.
# ADD BASE MTL /nologo /D "NDEBUG" /win32
# ADD MTL /nologo /D "NDEBUG" /win32
MTL_PROJ=/nologo /D "NDEBUG" /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
RSC_PROJ=/l 0x409 /fo"$(INTDIR)/Cashflow.res" /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
BSC32_FLAGS=/nologo /o"$(OUTDIR)/Cashflow.bsc"
BSC32_SBRS= \
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\
odbccp32.lib /nologo /subsystem:windows /incremental:no\
/pdb:"$(OUTDIR)/Cashflow.pdb" /machine:I386 /out:"$(OUTDIR)/Cashflow.exe"
LINK32_OBJS= \
"$(INTDIR)\Calcdlg.obj" \
"$(INTDIR)\Calcthrd.obj" \
"$(INTDIR)\Cashflow.obj" \
"$(INTDIR)\Cashflow.res" \
"$(INTDIR)\graph3d.obj" \
"$(INTDIR)\graphwnd.obj" \
"$(INTDIR)\Main.obj" \
"$(INTDIR)\Ppydlg.obj" \
"$(INTDIR)\Purecflo.obj" \
"$(INTDIR)\Stdtmpl.obj" \
"..\exe\fpsheet.lib" \
"..\exe\mscommon.lib" \
"..\exe\msengine.lib" \
"..\exe\msthread.lib"
"$(OUTDIR)\Cashflow.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "msvcobj"
# PROP Intermediate_Dir "msvcobj"
# PROP Target_Dir ""
OUTDIR=.\msvcobj
INTDIR=.\msvcobj
ALL : "..\exe\cashflow.exe"
CLEAN :
-@erase "$(INTDIR)\Calcdlg.obj"
-@erase "$(INTDIR)\Calcthrd.obj"
-@erase "$(INTDIR)\Cashflow.obj"
-@erase "$(INTDIR)\Cashflow.res"
-@erase "$(INTDIR)\graph3d.obj"
-@erase "$(INTDIR)\graphwnd.obj"
-@erase "$(INTDIR)\Main.obj"
-@erase "$(INTDIR)\Ppydlg.obj"
-@erase "$(INTDIR)\Purecflo.obj"
-@erase "$(INTDIR)\Stdtmpl.obj"
-@erase "$(OUTDIR)\cashflow.pdb"
-@erase "..\exe\cashflow.exe"
-@erase "..\exe\cashflow.ilk"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /Zp1 /MTd /Z7 /O2 /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__FLAT__" /D "STRICT" /Fp"c:\work\exe\msvc42.pch" /YX"windows.h" /c
CPP_PROJ=/nologo /Zp1 /MTd /Z7 /O2 /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D\
"__FLAT__" /D "STRICT" /Fp"c:\work\exe\msvc42.pch" /YX"windows.h"\
/Fo"$(INTDIR)/" /c
CPP_OBJS=.\msvcobj/
CPP_SBRS=.\.
# ADD BASE MTL /nologo /D "_DEBUG" /win32
# ADD MTL /nologo /D "_DEBUG" /win32
MTL_PROJ=/nologo /D "_DEBUG" /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
RSC_PROJ=/l 0x409 /fo"$(INTDIR)/Cashflow.res" /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
BSC32_FLAGS=/nologo /o"$(OUTDIR)/Cashflow.bsc"
BSC32_SBRS= \
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib uuid.lib /nologo /subsystem:windows /debug /machine:I386 /out:"..\exe\cashflow.exe"
# SUBTRACT LINK32 /pdb:none
LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
advapi32.lib shell32.lib uuid.lib /nologo /subsystem:windows /incremental:yes\
/pdb:"$(OUTDIR)/cashflow.pdb" /debug /machine:I386 /out:"..\exe\cashflow.exe"
LINK32_OBJS= \
"$(INTDIR)\Calcdlg.obj" \
"$(INTDIR)\Calcthrd.obj" \
"$(INTDIR)\Cashflow.obj" \
"$(INTDIR)\Cashflow.res" \
"$(INTDIR)\graph3d.obj" \
"$(INTDIR)\graphwnd.obj" \
"$(INTDIR)\Main.obj" \
"$(INTDIR)\Ppydlg.obj" \
"$(INTDIR)\Purecflo.obj" \
"$(INTDIR)\Stdtmpl.obj" \
"..\exe\fpsheet.lib" \
"..\exe\mscommon.lib" \
"..\exe\msengine.lib" \
"..\exe\msthread.lib"
"..\exe\cashflow.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ENDIF
.c{$(CPP_OBJS)}.obj:
$(CPP) $(CPP_PROJ) $<
.cpp{$(CPP_OBJS)}.obj:
$(CPP) $(CPP_PROJ) $<
.cxx{$(CPP_OBJS)}.obj:
$(CPP) $(CPP_PROJ) $<
.c{$(CPP_SBRS)}.sbr:
$(CPP) $(CPP_PROJ) $<
.cpp{$(CPP_SBRS)}.sbr:
$(CPP) $(CPP_PROJ) $<
.cxx{$(CPP_SBRS)}.sbr:
$(CPP) $(CPP_PROJ) $<
################################################################################
# Begin Target
# Name "cashflow - Win32 Release"
# Name "cashflow - Win32 Debug"
!IF "$(CFG)" == "cashflow - Win32 Release"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
!ENDIF
################################################################################
# Begin Source File
SOURCE=.\Stdtmpl.cpp
!IF "$(CFG)" == "cashflow - Win32 Release"
DEP_CPP_STDTM=\
{$(INCLUDE)}"\.\Calcdlg.hpp"\
{$(INCLUDE)}"\.\Calcthrd.hpp"\
{$(INCLUDE)}"\.\Ppydlg.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Dwindow.hpp"\
{$(INCLUDE)}"\Common\Filetime.hpp"\
{$(INCLUDE)}"\Common\Fixup.hpp"\
{$(INCLUDE)}"\Common\Font.hpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Point.hpp"\
{$(INCLUDE)}"\Common\Pvector.hpp"\
{$(INCLUDE)}"\Common\Pvector.tpp"\
{$(INCLUDE)}"\Common\Stdio.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Systime.hpp"\
{$(INCLUDE)}"\Common\Types.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\Common\Winnt.hpp"\
{$(INCLUDE)}"\Thread\Context.hpp"\
{$(INCLUDE)}"\Thread\Event.hpp"\
{$(INCLUDE)}"\Thread\Msgqueue.hpp"\
{$(INCLUDE)}"\Thread\Mthread.hpp"\
{$(INCLUDE)}"\Thread\Mutex.hpp"\
{$(INCLUDE)}"\Thread\Ptcllbck.hpp"\
{$(INCLUDE)}"\Thread\Qthread.hpp"\
{$(INCLUDE)}"\Thread\Savearea.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.tpp"\
{$(INCLUDE)}"\Thread\Thmsg.hpp"\
{$(INCLUDE)}"\Thread\Thread.hpp"\
"$(INTDIR)\Stdtmpl.obj" : $(SOURCE) $(DEP_CPP_STDTM) "$(INTDIR)"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
DEP_CPP_STDTM=\
{$(INCLUDE)}"\.\Calcdlg.hpp"\
{$(INCLUDE)}"\.\Calcthrd.hpp"\
{$(INCLUDE)}"\.\Ppydlg.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Dwindow.hpp"\
{$(INCLUDE)}"\Common\Filetime.hpp"\
{$(INCLUDE)}"\Common\Fixup.hpp"\
{$(INCLUDE)}"\Common\Font.hpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Point.hpp"\
{$(INCLUDE)}"\Common\Pvector.hpp"\
{$(INCLUDE)}"\Common\Pvector.tpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Systime.hpp"\
{$(INCLUDE)}"\Common\Types.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\Thread\Mthread.hpp"\
{$(INCLUDE)}"\Thread\Ptcllbck.hpp"\
{$(INCLUDE)}"\Thread\Qthread.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.tpp"\
{$(INCLUDE)}"\Thread\Thmsg.hpp"\
"$(INTDIR)\Stdtmpl.obj" : $(SOURCE) $(DEP_CPP_STDTM) "$(INTDIR)"
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Calcthrd.cpp
!IF "$(CFG)" == "cashflow - Win32 Release"
DEP_CPP_CALCT=\
"..\..\Parts\tbpro32\Include\Ssdll.h"\
{$(INCLUDE)}"\.\Calcdlg.hpp"\
{$(INCLUDE)}"\.\Calcthrd.hpp"\
{$(INCLUDE)}"\.\Cashdefs.hpp"\
{$(INCLUDE)}"\.\Cashflow.h"\
{$(INCLUDE)}"\.\Cashflow.hpp"\
{$(INCLUDE)}"\.\Graphwnd.hpp"\
{$(INCLUDE)}"\.\Passthru.hpp"\
{$(INCLUDE)}"\.\Ppydlg.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Crsctrl.hpp"\
{$(INCLUDE)}"\Common\Dwindow.hpp"\
{$(INCLUDE)}"\Common\Filetime.hpp"\
{$(INCLUDE)}"\Common\Font.hpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\common\gdipoint.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Point.hpp"\
{$(INCLUDE)}"\Common\Pointer.hpp"\
{$(INCLUDE)}"\Common\Rect.hpp"\
{$(INCLUDE)}"\Common\Stdio.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Systime.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Window.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\Common\Winnt.hpp"\
{$(INCLUDE)}"\Fpsheet\Coltype.hpp"\
{$(INCLUDE)}"\Fpsheet\Fpapi.hpp"\
{$(INCLUDE)}"\Fpsheet\Fpsheet.hpp"\
{$(INCLUDE)}"\Fpsheet\Menuitem.hpp"\
{$(INCLUDE)}"\Tbpro32\Ssdll.hpp"\
{$(INCLUDE)}"\Thread\Context.hpp"\
{$(INCLUDE)}"\Thread\Event.hpp"\
{$(INCLUDE)}"\Thread\Msgqueue.hpp"\
{$(INCLUDE)}"\Thread\Mthread.hpp"\
{$(INCLUDE)}"\Thread\Mutex.hpp"\
{$(INCLUDE)}"\Thread\Ptcllbck.hpp"\
{$(INCLUDE)}"\Thread\Qthread.hpp"\
{$(INCLUDE)}"\Thread\Savearea.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.tpp"\
{$(INCLUDE)}"\Thread\Thmsg.hpp"\
{$(INCLUDE)}"\Thread\Thread.hpp"\
"$(INTDIR)\Calcthrd.obj" : $(SOURCE) $(DEP_CPP_CALCT) "$(INTDIR)"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
DEP_CPP_CALCT=\
"..\..\Parts\tbpro32\Include\Ssdll.h"\
{$(INCLUDE)}"\.\Calcdlg.hpp"\
{$(INCLUDE)}"\.\Calcthrd.hpp"\
{$(INCLUDE)}"\.\Cashdefs.hpp"\
{$(INCLUDE)}"\.\Cashflow.h"\
{$(INCLUDE)}"\.\Cashflow.hpp"\
{$(INCLUDE)}"\.\Graphwnd.hpp"\
{$(INCLUDE)}"\.\Passthru.hpp"\
{$(INCLUDE)}"\.\Ppydlg.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Crsctrl.hpp"\
{$(INCLUDE)}"\Common\Dwindow.hpp"\
{$(INCLUDE)}"\Common\Font.hpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\common\gdipoint.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Point.hpp"\
{$(INCLUDE)}"\Common\Pointer.hpp"\
{$(INCLUDE)}"\Common\Rect.hpp"\
{$(INCLUDE)}"\Common\Stdio.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Window.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\Fpsheet\Coltype.hpp"\
{$(INCLUDE)}"\Fpsheet\Fpapi.hpp"\
{$(INCLUDE)}"\Fpsheet\Fpsheet.hpp"\
{$(INCLUDE)}"\Fpsheet\Menuitem.hpp"\
{$(INCLUDE)}"\Tbpro32\Ssdll.hpp"\
{$(INCLUDE)}"\Thread\Mthread.hpp"\
{$(INCLUDE)}"\Thread\Qthread.hpp"\
"$(INTDIR)\Calcthrd.obj" : $(SOURCE) $(DEP_CPP_CALCT) "$(INTDIR)"
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Cashflow.cpp
DEP_CPP_CASHF=\
{$(INCLUDE)}"\.\Cashflow.hpp"\
{$(INCLUDE)}"\.\Passthru.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
"$(INTDIR)\Cashflow.obj" : $(SOURCE) $(DEP_CPP_CASHF) "$(INTDIR)"
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Cashflow.h
!IF "$(CFG)" == "cashflow - Win32 Release"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Cashflow.rc
DEP_RSC_CASHFL=\
{$(INCLUDE)}"\Ctype.h"\
{$(INCLUDE)}"\Dde.h"\
{$(INCLUDE)}"\Ddeml.h"\
{$(INCLUDE)}"\Dlgs.h"\
{$(INCLUDE)}"\Excpt.h"\
{$(INCLUDE)}"\Lzexpand.h"\
{$(INCLUDE)}"\Mmsystem.h"\
{$(INCLUDE)}"\Mswsock.h"\
{$(INCLUDE)}"\Nb30.h"\
{$(INCLUDE)}"\Poppack.h"\
{$(INCLUDE)}"\Pshpack1.h"\
{$(INCLUDE)}"\Pshpack2.h"\
{$(INCLUDE)}"\Pshpack4.h"\
{$(INCLUDE)}"\Rpc.h"\
{$(INCLUDE)}"\Rpcdce.h"\
{$(INCLUDE)}"\Rpcdcep.h"\
{$(INCLUDE)}"\Rpcnsi.h"\
{$(INCLUDE)}"\Rpcnterr.h"\
{$(INCLUDE)}"\Shellapi.h"\
{$(INCLUDE)}"\Stdarg.h"\
{$(INCLUDE)}"\String.h"\
{$(INCLUDE)}"\Winbase.h"\
{$(INCLUDE)}"\Wincon.h"\
{$(INCLUDE)}"\Wincrypt.h"\
{$(INCLUDE)}"\Windef.h"\
{$(INCLUDE)}"\Windows.h"\
{$(INCLUDE)}"\Winerror.h"\
{$(INCLUDE)}"\Wingdi.h"\
{$(INCLUDE)}"\Winnetwk.h"\
{$(INCLUDE)}"\Winnls.h"\
{$(INCLUDE)}"\Winnt.h"\
{$(INCLUDE)}"\Winperf.h"\
{$(INCLUDE)}"\Winreg.h"\
{$(INCLUDE)}"\Winspool.h"\
{$(INCLUDE)}"\Winuser.h"\
{$(INCLUDE)}"\Winver.h"\
"$(INTDIR)\Cashflow.res" : $(SOURCE) $(DEP_RSC_CASHFL) "$(INTDIR)"
$(RSC) $(RSC_PROJ) $(SOURCE)
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Main.cpp
DEP_CPP_MAIN_=\
{$(INCLUDE)}"\.\Calcdlg.hpp"\
{$(INCLUDE)}"\.\Calcthrd.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Dwindow.hpp"\
{$(INCLUDE)}"\Common\Filetime.hpp"\
{$(INCLUDE)}"\Common\Font.hpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Stdio.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Systime.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\Common\Winnt.hpp"\
{$(INCLUDE)}"\Thread\Context.hpp"\
{$(INCLUDE)}"\Thread\Event.hpp"\
{$(INCLUDE)}"\Thread\Msgqueue.hpp"\
{$(INCLUDE)}"\Thread\Mthread.hpp"\
{$(INCLUDE)}"\Thread\Mutex.hpp"\
{$(INCLUDE)}"\Thread\Ptcllbck.hpp"\
{$(INCLUDE)}"\Thread\Qthread.hpp"\
{$(INCLUDE)}"\Thread\Savearea.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.tpp"\
{$(INCLUDE)}"\Thread\Thmsg.hpp"\
{$(INCLUDE)}"\Thread\Thread.hpp"\
"$(INTDIR)\Main.obj" : $(SOURCE) $(DEP_CPP_MAIN_) "$(INTDIR)"
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Ppydlg.cpp
DEP_CPP_PPYDL=\
{$(INCLUDE)}"\.\Cashdefs.hpp"\
{$(INCLUDE)}"\.\Cashflow.h"\
{$(INCLUDE)}"\.\Ppydlg.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Dwindow.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Stdio.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
"$(INTDIR)\Ppydlg.obj" : $(SOURCE) $(DEP_CPP_PPYDL) "$(INTDIR)"
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Purecflo.cpp
DEP_CPP_PUREC=\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
"$(INTDIR)\Purecflo.obj" : $(SOURCE) $(DEP_CPP_PUREC) "$(INTDIR)"
# End Source File
################################################################################
# Begin Source File
SOURCE=.\Calcdlg.cpp
DEP_CPP_CALCD=\
"..\..\Parts\tbpro32\Include\Ssdll.h"\
{$(INCLUDE)}"\.\Calcdlg.hpp"\
{$(INCLUDE)}"\.\Calcthrd.hpp"\
{$(INCLUDE)}"\.\Cashdefs.hpp"\
{$(INCLUDE)}"\.\Cashflow.h"\
{$(INCLUDE)}"\.\Cashflow.hpp"\
{$(INCLUDE)}"\.\Graphwnd.hpp"\
{$(INCLUDE)}"\.\Passthru.hpp"\
{$(INCLUDE)}"\.\Ppydlg.hpp"\
{$(INCLUDE)}"\.\Prepay.hpp"\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Crsctrl.hpp"\
{$(INCLUDE)}"\Common\Dwindow.hpp"\
{$(INCLUDE)}"\Common\Filetime.hpp"\
{$(INCLUDE)}"\Common\Font.hpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\common\gdipoint.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Point.hpp"\
{$(INCLUDE)}"\Common\Pointer.hpp"\
{$(INCLUDE)}"\Common\Rect.hpp"\
{$(INCLUDE)}"\Common\Stdio.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Systime.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Window.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\Common\Winnt.hpp"\
{$(INCLUDE)}"\Fpsheet\Coltype.hpp"\
{$(INCLUDE)}"\Fpsheet\Fpapi.hpp"\
{$(INCLUDE)}"\Fpsheet\Fpsheet.hpp"\
{$(INCLUDE)}"\Fpsheet\Menuitem.hpp"\
{$(INCLUDE)}"\Tbpro32\Ssdll.hpp"\
{$(INCLUDE)}"\Thread\Context.hpp"\
{$(INCLUDE)}"\Thread\Event.hpp"\
{$(INCLUDE)}"\Thread\Msgqueue.hpp"\
{$(INCLUDE)}"\Thread\Mthread.hpp"\
{$(INCLUDE)}"\Thread\Mutex.hpp"\
{$(INCLUDE)}"\Thread\Ptcllbck.hpp"\
{$(INCLUDE)}"\Thread\Qthread.hpp"\
{$(INCLUDE)}"\Thread\Savearea.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.hpp"\
{$(INCLUDE)}"\Thread\Tcallbck.tpp"\
{$(INCLUDE)}"\Thread\Thmsg.hpp"\
{$(INCLUDE)}"\Thread\Thread.hpp"\
"$(INTDIR)\Calcdlg.obj" : $(SOURCE) $(DEP_CPP_CALCD) "$(INTDIR)"
# End Source File
################################################################################
# Begin Source File
SOURCE=\work\exe\mscommon.lib
!IF "$(CFG)" == "cashflow - Win32 Release"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=\work\exe\msthread.lib
!IF "$(CFG)" == "cashflow - Win32 Release"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=\work\exe\fpsheet.lib
!IF "$(CFG)" == "cashflow - Win32 Release"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=.\graphwnd.cpp
DEP_CPP_GRAPH=\
{$(INCLUDE)}"\.\Clrrect.hpp"\
{$(INCLUDE)}"\.\Graph3d.hpp"\
{$(INCLUDE)}"\.\Graphwnd.hpp"\
{$(INCLUDE)}"\.\Purecflo.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Bminfo.hpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Dib.hpp"\
{$(INCLUDE)}"\Common\Fixup.hpp"\
{$(INCLUDE)}"\Common\Gdata.hpp"\
{$(INCLUDE)}"\Common\Gdata.tpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\common\gdipoint.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Math.hpp"\
{$(INCLUDE)}"\Common\Palentry.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Pen.hpp"\
{$(INCLUDE)}"\Common\Point.hpp"\
{$(INCLUDE)}"\Common\Pointer.hpp"\
{$(INCLUDE)}"\Common\Purebmp.hpp"\
{$(INCLUDE)}"\Common\Purehdc.hpp"\
{$(INCLUDE)}"\Common\Purepal.hpp"\
{$(INCLUDE)}"\Common\Pvector.hpp"\
{$(INCLUDE)}"\Common\Pvector.tpp"\
{$(INCLUDE)}"\Common\Rect.hpp"\
{$(INCLUDE)}"\Common\Rgbcolor.hpp"\
{$(INCLUDE)}"\Common\Rgbquad.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Types.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Window.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\engine\angle.hpp"\
{$(INCLUDE)}"\engine\angle3d.hpp"\
{$(INCLUDE)}"\Engine\Dib3d.hpp"\
{$(INCLUDE)}"\Engine\Point3d.hpp"\
{$(INCLUDE)}"\Engine\Purevsys.hpp"\
{$(INCLUDE)}"\Engine\Rect3d.hpp"\
{$(INCLUDE)}"\Engine\Spacial.hpp"\
{$(INCLUDE)}"\Engine\Vector3d.hpp"\
{$(INCLUDE)}"\Engine\Viewsys.hpp"\
"$(INTDIR)\graphwnd.obj" : $(SOURCE) $(DEP_CPP_GRAPH) "$(INTDIR)"
# End Source File
################################################################################
# Begin Source File
SOURCE=\work\exe\msengine.lib
!IF "$(CFG)" == "cashflow - Win32 Release"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
!ENDIF
# End Source File
################################################################################
# Begin Source File
SOURCE=.\graph3d.cpp
DEP_CPP_GRAPH3=\
{$(INCLUDE)}"\.\Graph3d.hpp"\
{$(INCLUDE)}"\Common\Assert.hpp"\
{$(INCLUDE)}"\Common\Block.hpp"\
{$(INCLUDE)}"\Common\Block.tpp"\
{$(INCLUDE)}"\Common\Bminfo.hpp"\
{$(INCLUDE)}"\Common\Callback.hpp"\
{$(INCLUDE)}"\Common\Callback.tpp"\
{$(INCLUDE)}"\Common\Cbdata.hpp"\
{$(INCLUDE)}"\Common\Cbptr.hpp"\
{$(INCLUDE)}"\Common\Dib.hpp"\
{$(INCLUDE)}"\Common\Fixup.hpp"\
{$(INCLUDE)}"\Common\Gdata.hpp"\
{$(INCLUDE)}"\Common\Gdata.tpp"\
{$(INCLUDE)}"\Common\Gdiobj.hpp"\
{$(INCLUDE)}"\common\gdipoint.hpp"\
{$(INCLUDE)}"\Common\Guiwnd.hpp"\
{$(INCLUDE)}"\Common\Math.hpp"\
{$(INCLUDE)}"\Common\Palentry.hpp"\
{$(INCLUDE)}"\Common\Pcallbck.hpp"\
{$(INCLUDE)}"\Common\Pen.hpp"\
{$(INCLUDE)}"\Common\Point.hpp"\
{$(INCLUDE)}"\Common\Purebmp.hpp"\
{$(INCLUDE)}"\Common\Purehdc.hpp"\
{$(INCLUDE)}"\Common\Purepal.hpp"\
{$(INCLUDE)}"\Common\Pvector.hpp"\
{$(INCLUDE)}"\Common\Pvector.tpp"\
{$(INCLUDE)}"\Common\Rect.hpp"\
{$(INCLUDE)}"\Common\Rgbcolor.hpp"\
{$(INCLUDE)}"\Common\Rgbquad.hpp"\
{$(INCLUDE)}"\Common\Stdlib.hpp"\
{$(INCLUDE)}"\Common\String.hpp"\
{$(INCLUDE)}"\Common\Types.hpp"\
{$(INCLUDE)}"\Common\Vhandler.hpp"\
{$(INCLUDE)}"\Common\Windows.hpp"\
{$(INCLUDE)}"\Common\Windowsx.hpp"\
{$(INCLUDE)}"\engine\angle.hpp"\
{$(INCLUDE)}"\engine\angle3d.hpp"\
{$(INCLUDE)}"\Engine\Dib3d.hpp"\
{$(INCLUDE)}"\Engine\Point3d.hpp"\
{$(INCLUDE)}"\Engine\Purevsys.hpp"\
{$(INCLUDE)}"\Engine\Viewsys.hpp"\
"$(INTDIR)\graph3d.obj" : $(SOURCE) $(DEP_CPP_GRAPH3) "$(INTDIR)"
# End Source File
# End Target
# End Project
################################################################################

BIN
cashflow/CASHFLOW.MDP Normal file

Binary file not shown.

BIN
cashflow/CASHFLOW.OPT Normal file

Binary file not shown.

92
cashflow/CASHFLOW.PLG Normal file
View File

@@ -0,0 +1,92 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: cashflow - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating command line "rc.exe /l 0x409 /fo".\msvcobj/Cashflow.res" /d "_DEBUG" "F:\work\cashflow\Cashflow.rc""
Creating temporary file "C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP203.tmp" with contents
[
/nologo /MTd /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__FLAT__" /D "STRICT" /Fp"\work\exe\msvc42.pch" /YX"windows.h" /Fo".\msvcobj/" /Fd".\msvcobj/" /FD /c
"F:\work\cashflow\Calcdlg.cpp"
"F:\work\cashflow\Calcthrd.cpp"
"F:\work\cashflow\Cashflow.cpp"
"F:\work\cashflow\graph3d.cpp"
"F:\work\cashflow\graphwnd.cpp"
"F:\work\cashflow\irr.cpp"
"F:\work\cashflow\Main.cpp"
"F:\work\cashflow\Ppydlg.cpp"
"F:\work\cashflow\Purecflo.cpp"
]
Creating command line "cl.exe @C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP203.tmp"
Creating temporary file "C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP204.tmp" with contents
[
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib uuid.lib /nologo /subsystem:windows /incremental:yes /pdb:".\msvcobj/cashflow.pdb" /debug /machine:I386 /out:"..\exe\cashflow.exe"
.\msvcobj\Calcdlg.obj
.\msvcobj\Calcthrd.obj
.\msvcobj\Cashflow.obj
.\msvcobj\graph3d.obj
.\msvcobj\graphwnd.obj
.\msvcobj\irr.obj
.\msvcobj\Main.obj
.\msvcobj\Ppydlg.obj
.\msvcobj\Purecflo.obj
.\msvcobj\Cashflow.res
..\exe\msengine.lib
..\exe\msthread.lib
\work\exe\mscommon.lib
\work\exe\msbsp.lib
]
Creating command line "link.exe @C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP204.tmp"
<h3>Output Window</h3>
Compiling resources...
Compiling...
Calcdlg.cpp
F:\work\cashflow\Calcdlg.cpp(6) : fatal error C1083: Cannot open include file: 'fpsheet/fpsheet.hpp': No such file or directory
Calcthrd.cpp
F:\work\cashflow\Calcthrd.cpp(8) : fatal error C1083: Cannot open include file: 'fpsheet/fpsheet.hpp': No such file or directory
Cashflow.cpp
graph3d.cpp
graphwnd.cpp
F:\work\cashflow\graphwnd.cpp(147) : error C2079: 'vectorInt' uses undefined class 'PureVector<int>'
F:\work\cashflow\graphwnd.cpp(151) : error C2228: left of '.size' must have class/struct/union type
F:\work\cashflow\graphwnd.cpp(152) : error C2109: subscript requires array or pointer type
F:\work\cashflow\graphwnd.cpp(152) : error C2106: '=' : left operand must be l-value
F:\work\cashflow\graphwnd.cpp(153) : error C2664: 'void __thiscall GraphWindow::showFlows(class Block<class PureCashFlow> &,int,class PureVector<int> &,unsigned char,int)' : cannot convert parameter 3 from 'int' to 'class PureVector<int> &'
A reference that is not to 'const' cannot be bound to a non-lvalue
F:\work\cashflow\graphwnd.cpp(154) : error C2109: subscript requires array or pointer type
F:\work\cashflow\graphwnd.cpp(154) : error C2106: '=' : left operand must be l-value
F:\work\cashflow\graphwnd.cpp(155) : error C2664: 'void __thiscall GraphWindow::showFlows(class Block<class PureCashFlow> &,int,class PureVector<int> &,unsigned char,int)' : cannot convert parameter 3 from 'int' to 'class PureVector<int> &'
A reference that is not to 'const' cannot be bound to a non-lvalue
F:\work\cashflow\graphwnd.cpp(161) : error C2079: 'scrnInt' uses undefined class 'PureVector<int>'
F:\work\cashflow\graphwnd.cpp(167) : error C2664: 'transform' : cannot convert parameter 1 from 'class PureVector<int>' to 'class Array<int> &'
A reference that is not to 'const' cannot be bound to a non-lvalue
F:\work\cashflow\graphwnd.cpp(168) : error C2228: left of '.size' must have class/struct/union type
F:\work\cashflow\graphwnd.cpp(170) : error C2109: subscript requires array or pointer type
F:\work\cashflow\graphwnd.cpp(170) : error C2109: subscript requires array or pointer type
F:\work\cashflow\graphwnd.cpp(184) : error C2027: use of undefined type 'PureVector<int>'
F:\work\cashflow\graphwnd.cpp(184) : error C2228: left of '.size' must have class/struct/union type
F:\work\cashflow\graphwnd.cpp(185) : error C2027: use of undefined type 'PureVector<int>'
F:\work\cashflow\graphwnd.cpp(185) : error C2228: left of '.size' must have class/struct/union type
F:\work\cashflow\graphwnd.cpp(187) : error C2676: binary '[' : 'class PureVector<int>' does not define this operator or a conversion to a type acceptable to the predefined operator
F:\work\cashflow\graphwnd.cpp(188) : error C2676: binary '[' : 'class PureVector<int>' does not define this operator or a conversion to a type acceptable to the predefined operator
F:\work\cashflow\graphwnd.cpp(188) : error C2676: binary '[' : 'class PureVector<int>' does not define this operator or a conversion to a type acceptable to the predefined operator
F:\work\cashflow\graphwnd.cpp(191) : error C2027: use of undefined type 'PureVector<int>'
F:\work\cashflow\graphwnd.cpp(191) : error C2228: left of '.size' must have class/struct/union type
F:\work\cashflow\graphwnd.cpp(191) : error C2676: binary '[' : 'class PureVector<int>' does not define this operator or a conversion to a type acceptable to the predefined operator
F:\work\cashflow\graphwnd.cpp(191) : error C2676: binary '[' : 'class PureVector<int>' does not define this operator or a conversion to a type acceptable to the predefined operator
irr.cpp
Main.cpp
Ppydlg.cpp
Purecflo.cpp
Error executing cl.exe.
<h3>Results</h3>
cashflow.exe - 26 error(s), 0 warning(s)
</pre>
</body>
</html>

34
cashflow/CASHFLOW.RC Normal file
View File

@@ -0,0 +1,34 @@
#include <windows.h>
#include <cashflow.h>
Cashflow DIALOG 7, 18, 375, 251
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Cashflow"
FONT 8, "MS Sans Serif"
{
LTEXT "Principal:", -1, 5, 10, 34, 8
EDITTEXT CALC_PRINCIPAL, 37, 8, 57, 12, WS_BORDER | WS_TABSTOP
LTEXT "Coupon:", -1, 99, 10, 31, 8
EDITTEXT CALC_COUPON, 127, 8, 59, 12, WS_BORDER | WS_TABSTOP
LTEXT "Term:", -1, 191, 10, 22, 8
EDITTEXT CALC_TERM, 213, 8, 32, 12, WS_BORDER | WS_TABSTOP
AUTORADIOBUTTON "Prepayments", CALC_PREPAYMENTS, 252, 8, 60, 12
PUSHBUTTON "Calculate", CALC_CALCULATE, 318, 8, 50, 14
}
Prepayments DIALOG 6, 15, 180, 69
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Prepayment Schedule"
FONT 8, "MS Sans Serif"
{
DEFPUSHBUTTON "Apply", IDOK, 113, 8, 50, 14
LTEXT "Amount :", -1, 6, 10, 32, 8
LTEXT "Increment :", -1, 2, 23, 37, 8
LTEXT "Frequency :", -1, 2, 35, 40, 8
EDITTEXT PPY_AMOUNT, 41, 8, 67, 12, WS_BORDER | WS_TABSTOP
EDITTEXT PPY_INCREMENT, 41, 21, 67, 12, WS_BORDER | WS_TABSTOP
EDITTEXT PPY_FREQUENCY, 41, 34, 67, 12, WS_BORDER | WS_TABSTOP
PUSHBUTTON "Cancel", IDCANCEL, 113, 22, 50, 14
}

BIN
cashflow/CASHFLOW.RWS Normal file

Binary file not shown.

363
cashflow/CASHFLOW.TXT Normal file
View File

@@ -0,0 +1,363 @@
MBSFLOWS
Iss Bal SMM MtgPay NetIntPay GrossInt SchdPrn Prepay TotPrin CashFlow Factor
==========================================================================================================
255000.00 0.0000000 1848.93 1673.44 1673.44 175.49 0.00 175.49 1848.93 1.0000000000
254824.51 0.0000000 1848.93 1672.29 3345.72 176.64 0.00 176.64 1848.93 0.9993118061
254647.87 0.0000000 1848.93 1671.13 5016.85 177.80 0.00 177.80 1848.93 0.9986190959
254470.07 0.0000000 1848.93 1669.96 6686.81 178.97 0.00 178.97 1848.93 0.9979218398
254291.10 0.0000000 1848.93 1668.79 8355.60 180.14 0.00 180.14 1848.93 0.9972200079
254110.96 0.0000000 1848.93 1667.60 10023.20 181.32 0.00 181.32 1848.93 0.9965135703
253929.64 0.0000000 1848.93 1666.41 11689.61 182.51 0.00 182.51 1848.93 0.9958024967
253747.12 0.0000000 1848.93 1665.22 13354.83 183.71 0.00 183.71 1848.93 0.9950867567
253563.41 0.0000000 1848.93 1664.01 15018.84 184.92 0.00 184.92 1848.93 0.9943663196
253378.49 0.0000000 1848.93 1662.80 16681.63 186.13 0.00 186.13 1848.93 0.9936411546
253192.36 0.0000000 1848.93 1661.57 18343.21 187.35 0.00 187.35 1848.93 0.9929112308
253005.01 0.0000000 1848.93 1660.35 20003.55 188.58 0.00 188.58 1848.93 0.9921765168
252816.43 0.0000000 1848.93 1659.11 21662.66 189.82 0.00 189.82 1848.93 0.9914369813
252626.61 0.0000000 1848.93 1657.86 23320.52 191.06 0.00 191.06 1848.93 0.9906925926
252435.55 0.0000000 1848.93 1656.61 24977.13 192.32 0.00 192.32 1848.93 0.9899433188
252243.23 0.0000000 1848.93 1655.35 26632.48 193.58 0.00 193.58 1848.93 0.9891891279
252049.65 0.0000000 1848.93 1654.08 28286.55 194.85 0.00 194.85 1848.93 0.9884299876
251854.80 0.0000000 1848.93 1652.80 29939.35 196.13 0.00 196.13 1848.93 0.9876658655
251658.67 0.0000000 1848.93 1651.51 31590.86 197.42 0.00 197.42 1848.93 0.9868967288
251461.25 0.0000000 1848.93 1650.21 33241.08 198.71 0.00 198.71 1848.93 0.9861225447
251262.54 0.0000000 1848.93 1648.91 34889.99 200.02 0.00 200.02 1848.93 0.9853432799
251062.52 0.0000000 1848.93 1647.60 36537.58 201.33 0.00 201.33 1848.93 0.9845589013
250861.19 0.0000000 1848.93 1646.28 38183.86 202.65 0.00 202.65 1848.93 0.9837693752
250658.54 0.0000000 1848.93 1644.95 39828.81 203.98 0.00 203.98 1848.93 0.9829746678
250454.56 0.0000000 1848.93 1643.61 41472.41 205.32 0.00 205.32 1848.93 0.9821747451
250249.24 0.0000000 1848.93 1642.26 43114.68 206.67 0.00 206.67 1848.93 0.9813695729
250042.57 0.0000000 1848.93 1640.90 44755.58 208.02 0.00 208.02 1848.93 0.9805591168
249834.55 0.0000000 1848.93 1639.54 46395.12 209.39 0.00 209.39 1848.93 0.9797433421
249625.16 0.0000000 1848.93 1638.17 48033.28 210.76 0.00 210.76 1848.93 0.9789222139
249414.40 0.0000000 1848.93 1636.78 49670.07 212.14 0.00 212.14 1848.93 0.9780956970
249202.26 0.0000000 1848.93 1635.39 51305.46 213.54 0.00 213.54 1848.93 0.9772637561
248988.72 0.0000000 1848.93 1633.99 52939.44 214.94 0.00 214.94 1848.93 0.9764263556
248773.78 0.0000000 1848.93 1632.58 54572.02 216.35 0.00 216.35 1848.93 0.9755834596
248557.43 0.0000000 1848.93 1631.16 56203.18 217.77 0.00 217.77 1848.93 0.9747350321
248339.66 0.0000000 1848.93 1629.73 57832.91 219.20 0.00 219.20 1848.93 0.9738810369
248120.47 0.0000000 1848.93 1628.29 59461.20 220.64 0.00 220.64 1848.93 0.9730214372
247899.83 0.0000000 1848.93 1626.84 61088.04 222.08 0.00 222.08 1848.93 0.9721561965
247677.75 0.0000000 1848.93 1625.39 62713.43 223.54 0.00 223.54 1848.93 0.9712852776
247454.20 0.0000000 1848.93 1623.92 64337.35 225.01 0.00 225.01 1848.93 0.9704086433
247229.20 0.0000000 1848.93 1622.44 65959.79 226.49 0.00 226.49 1848.93 0.9695262561
247002.71 0.0000000 1848.93 1620.96 67580.74 227.97 0.00 227.97 1848.93 0.9686380783
246774.74 0.0000000 1848.93 1619.46 69200.20 229.47 0.00 229.47 1848.93 0.9677440717
246545.27 0.0000000 1848.93 1617.95 70818.16 230.97 0.00 230.97 1848.93 0.9668441983
246314.30 0.0000000 1848.93 1616.44 72434.59 232.49 0.00 232.49 1848.93 0.9659384194
246081.81 0.0000000 1848.93 1614.91 74049.51 234.02 0.00 234.02 1848.93 0.9650266964
245847.79 0.0000000 1848.93 1613.38 75662.88 235.55 0.00 235.55 1848.93 0.9641089901
245612.24 0.0000000 1848.93 1611.83 77274.71 237.10 0.00 237.10 1848.93 0.9631852615
245375.15 0.0000000 1848.93 1610.27 78884.99 238.65 0.00 238.65 1848.93 0.9622554708
245136.49 0.0000000 1848.93 1608.71 80493.69 240.22 0.00 240.22 1848.93 0.9613195784
244896.27 0.0000000 1848.93 1607.13 82100.83 241.80 0.00 241.80 1848.93 0.9603775442
244654.48 0.0000000 1848.93 1605.55 83706.37 243.38 0.00 243.38 1848.93 0.9594293280
244411.10 0.0000000 1848.93 1603.95 85310.32 244.98 0.00 244.98 1848.93 0.9584748890
244166.12 0.0000000 1848.93 1602.34 86912.66 246.59 0.00 246.59 1848.93 0.9575141865
243919.53 0.0000000 1848.93 1600.72 88513.38 248.21 0.00 248.21 1848.93 0.9565471795
243671.33 0.0000000 1848.93 1599.09 90112.47 249.83 0.00 249.83 1848.93 0.9555738264
243421.49 0.0000000 1848.93 1597.45 91709.93 251.47 0.00 251.47 1848.93 0.9545940857
243170.02 0.0000000 1848.93 1595.80 93305.73 253.12 0.00 253.12 1848.93 0.9536079155
242916.89 0.0000000 1848.93 1594.14 94899.87 254.78 0.00 254.78 1848.93 0.9526152735
242662.11 0.0000000 1848.93 1592.47 96492.34 256.46 0.00 256.46 1848.93 0.9516161173
242405.65 0.0000000 1848.93 1590.79 98083.13 258.14 0.00 258.14 1848.93 0.9506104042
242147.51 0.0000000 1848.93 1589.09 99672.22 259.83 0.00 259.83 1848.93 0.9495980910
241887.68 0.0000000 1848.93 1587.39 101259.61 261.54 0.00 261.54 1848.93 0.9485791346
241626.14 0.0000000 1848.93 1585.67 102845.28 263.26 0.00 263.26 1848.93 0.9475534912
241362.88 0.0000000 1848.93 1583.94 104429.23 264.98 0.00 264.98 1848.93 0.9465211171
241097.90 0.0000000 1848.93 1582.20 106011.43 266.72 0.00 266.72 1848.93 0.9454819680
240831.18 0.0000000 1848.93 1580.45 107591.89 268.47 0.00 268.47 1848.93 0.9444359995
240562.71 0.0000000 1848.93 1578.69 109170.58 270.23 0.00 270.23 1848.93 0.9433831668
240292.47 0.0000000 1848.93 1576.92 110747.50 272.01 0.00 272.01 1848.93 0.9423234249
240020.47 0.0000000 1848.93 1575.13 112322.63 273.79 0.00 273.79 1848.93 0.9412567285
239746.67 0.0000000 1848.93 1573.34 113895.97 275.59 0.00 275.59 1848.93 0.9401830318
239471.08 0.0000000 1848.93 1571.53 115467.50 277.40 0.00 277.40 1848.93 0.9391022891
239193.69 0.0000000 1848.93 1569.71 117037.21 279.22 0.00 279.22 1848.93 0.9380144539
238914.47 0.0000000 1848.93 1567.88 118605.08 281.05 0.00 281.05 1848.93 0.9369194798
238633.42 0.0000000 1848.93 1566.03 120171.12 282.90 0.00 282.90 1848.93 0.9358173200
238350.52 0.0000000 1848.93 1564.18 121735.29 284.75 0.00 284.75 1848.93 0.9347079273
238065.77 0.0000000 1848.93 1562.31 123297.60 286.62 0.00 286.62 1848.93 0.9335912541
237779.15 0.0000000 1848.93 1560.43 124858.02 288.50 0.00 288.50 1848.93 0.9324672528
237490.65 0.0000000 1848.93 1558.53 126416.56 290.39 0.00 290.39 1848.93 0.9313358752
237200.25 0.0000000 1848.93 1556.63 127973.18 292.30 0.00 292.30 1848.93 0.9301970730
236907.95 0.0000000 1848.93 1554.71 129527.89 294.22 0.00 294.22 1848.93 0.9290507973
236613.73 0.0000000 1848.93 1552.78 131080.67 296.15 0.00 296.15 1848.93 0.9278969993
236317.59 0.0000000 1848.93 1550.83 132631.50 298.09 0.00 298.09 1848.93 0.9267356294
236019.49 0.0000000 1848.93 1548.88 134180.38 300.05 0.00 300.05 1848.93 0.9255666381
235719.44 0.0000000 1848.93 1546.91 135727.29 302.02 0.00 302.02 1848.93 0.9243899752
235417.43 0.0000000 1848.93 1544.93 137272.22 304.00 0.00 304.00 1848.93 0.9232055905
235113.43 0.0000000 1848.93 1542.93 138815.15 306.00 0.00 306.00 1848.93 0.9220134333
234807.43 0.0000000 1848.93 1540.92 140356.07 308.00 0.00 308.00 1848.93 0.9208134525
234499.43 0.0000000 1848.93 1538.90 141894.97 310.02 0.00 310.02 1848.93 0.9196055969
234189.40 0.0000000 1848.93 1536.87 143431.84 312.06 0.00 312.06 1848.93 0.9183898147
233877.34 0.0000000 1848.93 1534.82 144966.66 314.11 0.00 314.11 1848.93 0.9171660539
233563.24 0.0000000 1848.93 1532.76 146499.42 316.17 0.00 316.17 1848.93 0.9159342622
233247.07 0.0000000 1848.93 1530.68 148030.10 318.24 0.00 318.24 1848.93 0.9146943869
232928.83 0.0000000 1848.93 1528.60 149558.70 320.33 0.00 320.33 1848.93 0.9134463749
232608.49 0.0000000 1848.93 1526.49 151085.19 322.43 0.00 322.43 1848.93 0.9121901728
232286.06 0.0000000 1848.93 1524.38 152609.57 324.55 0.00 324.55 1848.93 0.9109257269
231961.51 0.0000000 1848.93 1522.25 154131.82 326.68 0.00 326.68 1848.93 0.9096529830
231634.83 0.0000000 1848.93 1520.10 155651.92 328.82 0.00 328.82 1848.93 0.9083718868
231306.01 0.0000000 1848.93 1517.95 157169.87 330.98 0.00 330.98 1848.93 0.9070823834
230975.03 0.0000000 1848.93 1515.77 158685.64 333.15 0.00 333.15 1848.93 0.9057844176
230641.87 0.0000000 1848.93 1513.59 160199.23 335.34 0.00 335.34 1848.93 0.9044779339
230306.53 0.0000000 1848.93 1511.39 161710.62 337.54 0.00 337.54 1848.93 0.9031628765
229968.99 0.0000000 1848.93 1509.17 163219.79 339.76 0.00 339.76 1848.93 0.9018391889
229629.24 0.0000000 1848.93 1506.94 164726.73 341.99 0.00 341.99 1848.93 0.9005068147
229287.25 0.0000000 1848.93 1504.70 166231.43 344.23 0.00 344.23 1848.93 0.8991656967
228943.02 0.0000000 1848.93 1502.44 167733.86 346.49 0.00 346.49 1848.93 0.8978157777
228596.53 0.0000000 1848.93 1500.16 169234.03 348.76 0.00 348.76 1848.93 0.8964569998
228247.77 0.0000000 1848.93 1497.88 170731.91 351.05 0.00 351.05 1848.93 0.8950893049
227896.72 0.0000000 1848.93 1495.57 172227.48 353.35 0.00 353.35 1848.93 0.8937126346
227543.37 0.0000000 1848.93 1493.25 173720.73 355.67 0.00 355.67 1848.93 0.8923269298
227187.69 0.0000000 1848.93 1490.92 175211.65 358.01 0.00 358.01 1848.93 0.8909321314
226829.69 0.0000000 1848.93 1488.57 176700.22 360.36 0.00 360.36 1848.93 0.8895281796
226469.33 0.0000000 1848.93 1486.20 178186.43 362.72 0.00 362.72 1848.93 0.8881150143
226106.61 0.0000000 1848.93 1483.82 179670.25 365.10 0.00 365.10 1848.93 0.8866925752
225741.50 0.0000000 1848.93 1481.43 181151.68 367.50 0.00 367.50 1848.93 0.8852608013
225374.01 0.0000000 1848.93 1479.02 182630.70 369.91 0.00 369.91 1848.93 0.8838196314
225004.10 0.0000000 1848.93 1476.59 184107.28 372.34 0.00 372.34 1848.93 0.8823690038
224631.76 0.0000000 1848.93 1474.15 185581.43 374.78 0.00 374.78 1848.93 0.8809088565
224256.98 0.0000000 1848.93 1471.69 187053.12 377.24 0.00 377.24 1848.93 0.8794391269
223879.74 0.0000000 1848.93 1469.21 188522.33 379.72 0.00 379.72 1848.93 0.8779597523
223500.02 0.0000000 1848.93 1466.72 189989.05 382.21 0.00 382.21 1848.93 0.8764706692
223117.81 0.0000000 1848.93 1464.21 191453.26 384.72 0.00 384.72 1848.93 0.8749718140
222733.10 0.0000000 1848.93 1461.69 192914.94 387.24 0.00 387.24 1848.93 0.8734631227
222345.86 0.0000000 1848.93 1459.14 194374.09 389.78 0.00 389.78 1848.93 0.8719445305
221956.07 0.0000000 1848.93 1456.59 195830.67 392.34 0.00 392.34 1848.93 0.8704159725
221563.73 0.0000000 1848.93 1454.01 197284.69 394.91 0.00 394.91 1848.93 0.8688773834
221168.82 0.0000000 1848.93 1451.42 198736.11 397.51 0.00 397.51 1848.93 0.8673286973
220771.31 0.0000000 1848.93 1448.81 200184.92 400.12 0.00 400.12 1848.93 0.8657698480
220371.20 0.0000000 1848.93 1446.19 201631.10 402.74 0.00 402.74 1848.93 0.8642007687
219968.46 0.0000000 1848.93 1443.54 203074.65 405.38 0.00 405.38 1848.93 0.8626213923
219563.07 0.0000000 1848.93 1440.88 204515.53 408.04 0.00 408.04 1848.93 0.8610316513
219155.03 0.0000000 1848.93 1438.20 205953.74 410.72 0.00 410.72 1848.93 0.8594314776
218744.30 0.0000000 1848.93 1435.51 207389.24 413.42 0.00 413.42 1848.93 0.8578208027
218330.89 0.0000000 1848.93 1432.80 208822.04 416.13 0.00 416.13 1848.93 0.8561995578
217914.76 0.0000000 1848.93 1430.07 210252.11 418.86 0.00 418.86 1848.93 0.8545676735
217495.90 0.0000000 1848.93 1427.32 211679.42 421.61 0.00 421.61 1848.93 0.8529250799
217074.29 0.0000000 1848.93 1424.55 213103.97 424.38 0.00 424.38 1848.93 0.8512717069
216649.91 0.0000000 1848.93 1421.77 214525.74 427.16 0.00 427.16 1848.93 0.8496074835
216222.75 0.0000000 1848.93 1418.96 215944.70 429.97 0.00 429.97 1848.93 0.8479323387
215792.78 0.0000000 1848.93 1416.14 217360.84 432.79 0.00 432.79 1848.93 0.8462462008
215359.99 0.0000000 1848.93 1413.30 218774.14 435.63 0.00 435.63 1848.93 0.8445489975
214924.37 0.0000000 1848.93 1410.44 220184.58 438.49 0.00 438.49 1848.93 0.8428406564
214485.88 0.0000000 1848.93 1407.56 221592.15 441.36 0.00 441.36 1848.93 0.8411211043
214044.52 0.0000000 1848.93 1404.67 222996.81 444.26 0.00 444.26 1848.93 0.8393902676
213600.26 0.0000000 1848.93 1401.75 224398.56 447.18 0.00 447.18 1848.93 0.8376480723
213153.08 0.0000000 1848.93 1398.82 225797.38 450.11 0.00 450.11 1848.93 0.8358944439
212702.97 0.0000000 1848.93 1395.86 227193.24 453.06 0.00 453.06 1848.93 0.8341293072
212249.91 0.0000000 1848.93 1392.89 228586.13 456.04 0.00 456.04 1848.93 0.8323525869
211793.87 0.0000000 1848.93 1389.90 229976.03 459.03 0.00 459.03 1848.93 0.8305642068
211334.84 0.0000000 1848.93 1386.88 231362.92 462.04 0.00 462.04 1848.93 0.8287640905
210872.80 0.0000000 1848.93 1383.85 232746.77 465.07 0.00 465.07 1848.93 0.8269521609
210407.73 0.0000000 1848.93 1380.80 234127.57 468.13 0.00 468.13 1848.93 0.8251283406
209939.60 0.0000000 1848.93 1377.73 235505.30 471.20 0.00 471.20 1848.93 0.8232925514
209468.40 0.0000000 1848.93 1374.64 236879.94 474.29 0.00 474.29 1848.93 0.8214447148
208994.11 0.0000000 1848.93 1371.52 238251.46 477.40 0.00 477.40 1848.93 0.8195847518
208516.71 0.0000000 1848.93 1368.39 239619.85 480.54 0.00 480.54 1848.93 0.8177125829
208036.17 0.0000000 1848.93 1365.24 240985.09 483.69 0.00 483.69 1848.93 0.8158281278
207552.48 0.0000000 1848.93 1362.06 242347.15 486.86 0.00 486.86 1848.93 0.8139313059
207065.62 0.0000000 1848.93 1358.87 243706.02 490.06 0.00 490.06 1848.93 0.8120220362
206575.56 0.0000000 1848.93 1355.65 245061.67 493.27 0.00 493.27 1848.93 0.8101002369
206082.29 0.0000000 1848.93 1352.41 246414.09 496.51 0.00 496.51 1848.93 0.8081658258
205585.77 0.0000000 1848.93 1349.16 247763.24 499.77 0.00 499.77 1848.93 0.8062187201
205086.00 0.0000000 1848.93 1345.88 249109.12 503.05 0.00 503.05 1848.93 0.8042588365
204582.95 0.0000000 1848.93 1342.58 250451.69 506.35 0.00 506.35 1848.93 0.8022860912
204076.60 0.0000000 1848.93 1339.25 251790.95 509.67 0.00 509.67 1848.93 0.8003003998
203566.93 0.0000000 1848.93 1335.91 253126.86 513.02 0.00 513.02 1848.93 0.7983016772
203053.91 0.0000000 1848.93 1332.54 254459.40 516.39 0.00 516.39 1848.93 0.7962898380
202537.52 0.0000000 1848.93 1329.15 255788.55 519.77 0.00 519.77 1848.93 0.7942647962
202017.75 0.0000000 1848.93 1325.74 257114.29 523.19 0.00 523.19 1848.93 0.7922264650
201494.56 0.0000000 1848.93 1322.31 258436.60 526.62 0.00 526.62 1848.93 0.7901747572
200967.94 0.0000000 1848.93 1318.85 259755.45 530.07 0.00 530.07 1848.93 0.7881095852
200437.87 0.0000000 1848.93 1315.37 261070.82 533.55 0.00 533.55 1848.93 0.7860308604
199904.32 0.0000000 1848.93 1311.87 262382.70 537.05 0.00 537.05 1848.93 0.7839384940
199367.26 0.0000000 1848.93 1308.35 263691.04 540.58 0.00 540.58 1848.93 0.7818323964
198826.68 0.0000000 1848.93 1304.80 264995.84 544.13 0.00 544.13 1848.93 0.7797124776
198282.55 0.0000000 1848.93 1301.23 266297.07 547.70 0.00 547.70 1848.93 0.7775786468
197734.86 0.0000000 1848.93 1297.64 267594.71 551.29 0.00 551.29 1848.93 0.7754308128
197183.57 0.0000000 1848.93 1294.02 268888.73 554.91 0.00 554.91 1848.93 0.7732688836
196628.66 0.0000000 1848.93 1290.38 270179.10 558.55 0.00 558.55 1848.93 0.7710927667
196070.10 0.0000000 1848.93 1286.71 271465.81 562.22 0.00 562.22 1848.93 0.7689023691
195507.89 0.0000000 1848.93 1283.02 272748.83 565.91 0.00 565.91 1848.93 0.7666975969
194941.98 0.0000000 1848.93 1279.31 274028.14 569.62 0.00 569.62 1848.93 0.7644783560
194372.36 0.0000000 1848.93 1275.57 275303.71 573.36 0.00 573.36 1848.93 0.7622445513
193799.00 0.0000000 1848.93 1271.81 276575.51 577.12 0.00 577.12 1848.93 0.7599960872
193221.88 0.0000000 1848.93 1268.02 277843.53 580.91 0.00 580.91 1848.93 0.7577328676
192640.97 0.0000000 1848.93 1264.21 279107.74 584.72 0.00 584.72 1848.93 0.7554547957
192056.25 0.0000000 1848.93 1260.37 280368.11 588.56 0.00 588.56 1848.93 0.7531617738
191467.69 0.0000000 1848.93 1256.51 281624.61 592.42 0.00 592.42 1848.93 0.7508537040
190875.27 0.0000000 1848.93 1252.62 282877.23 596.31 0.00 596.31 1848.93 0.7485304876
190278.97 0.0000000 1848.93 1248.71 284125.94 600.22 0.00 600.22 1848.93 0.7461920250
189678.75 0.0000000 1848.93 1244.77 285370.71 604.16 0.00 604.16 1848.93 0.7438382162
189074.58 0.0000000 1848.93 1240.80 286611.51 608.12 0.00 608.12 1848.93 0.7414689606
188466.46 0.0000000 1848.93 1236.81 287848.32 612.12 0.00 612.12 1848.93 0.7390841567
187854.34 0.0000000 1848.93 1232.79 289081.11 616.13 0.00 616.13 1848.93 0.7366837026
187238.21 0.0000000 1848.93 1228.75 290309.86 620.18 0.00 620.18 1848.93 0.7342674954
186618.04 0.0000000 1848.93 1224.68 291534.54 624.25 0.00 624.25 1848.93 0.7318354320
185993.79 0.0000000 1848.93 1220.58 292755.13 628.34 0.00 628.34 1848.93 0.7293874081
185365.45 0.0000000 1848.93 1216.46 293971.59 632.47 0.00 632.47 1848.93 0.7269233190
184732.98 0.0000000 1848.93 1212.31 295183.90 636.62 0.00 636.62 1848.93 0.7244430594
184096.36 0.0000000 1848.93 1208.13 296392.03 640.79 0.00 640.79 1848.93 0.7219465230
183455.57 0.0000000 1848.93 1203.93 297595.96 645.00 0.00 645.00 1848.93 0.7194336032
182810.57 0.0000000 1848.93 1199.69 298795.65 649.23 0.00 649.23 1848.93 0.7169041923
182161.34 0.0000000 1848.93 1195.43 299991.09 653.49 0.00 653.49 1848.93 0.7143581821
181507.84 0.0000000 1848.93 1191.15 301182.23 657.78 0.00 657.78 1848.93 0.7117954637
180850.06 0.0000000 1848.93 1186.83 302369.06 662.10 0.00 662.10 1848.93 0.7092159276
180187.96 0.0000000 1848.93 1182.48 303551.54 666.44 0.00 666.44 1848.93 0.7066194632
179521.52 0.0000000 1848.93 1178.11 304729.65 670.82 0.00 670.82 1848.93 0.7040059595
178850.70 0.0000000 1848.93 1173.71 305903.36 675.22 0.00 675.22 1848.93 0.7013753046
178175.48 0.0000000 1848.93 1169.28 307072.64 679.65 0.00 679.65 1848.93 0.6987273862
177495.83 0.0000000 1848.93 1164.82 308237.46 684.11 0.00 684.11 1848.93 0.6960620907
176811.72 0.0000000 1848.93 1160.33 309397.78 688.60 0.00 688.60 1848.93 0.6933793043
176123.12 0.0000000 1848.93 1155.81 310553.59 693.12 0.00 693.12 1848.93 0.6906789120
175430.00 0.0000000 1848.93 1151.26 311704.85 697.67 0.00 697.67 1848.93 0.6879607985
174732.34 0.0000000 1848.93 1146.68 312851.53 702.25 0.00 702.25 1848.93 0.6852248473
174030.09 0.0000000 1848.93 1142.07 313993.60 706.85 0.00 706.85 1848.93 0.6824709414
173323.24 0.0000000 1848.93 1137.43 315131.04 711.49 0.00 711.49 1848.93 0.6796989631
172611.74 0.0000000 1848.93 1132.76 316263.80 716.16 0.00 716.16 1848.93 0.6769087936
171895.58 0.0000000 1848.93 1128.06 317391.87 720.86 0.00 720.86 1848.93 0.6741003136
171174.72 0.0000000 1848.93 1123.33 318515.20 725.59 0.00 725.59 1848.93 0.6712734030
170449.12 0.0000000 1848.93 1118.57 319633.77 730.35 0.00 730.35 1848.93 0.6684279408
169718.77 0.0000000 1848.93 1113.78 320747.55 735.15 0.00 735.15 1848.93 0.6655638052
168983.62 0.0000000 1848.93 1108.96 321856.51 739.97 0.00 739.97 1848.93 0.6626808738
168243.65 0.0000000 1848.93 1104.10 322960.61 744.83 0.00 744.83 1848.93 0.6597790231
167498.82 0.0000000 1848.93 1099.21 324059.82 749.72 0.00 749.72 1848.93 0.6568581290
166749.11 0.0000000 1848.93 1094.29 325154.11 754.64 0.00 754.64 1848.93 0.6539180666
165994.47 0.0000000 1848.93 1089.34 326243.45 759.59 0.00 759.59 1848.93 0.6509587099
165234.88 0.0000000 1848.93 1084.35 327327.80 764.57 0.00 764.57 1848.93 0.6479799326
164470.31 0.0000000 1848.93 1079.34 328407.14 769.59 0.00 769.59 1848.93 0.6449816069
163700.72 0.0000000 1848.93 1074.29 329481.42 774.64 0.00 774.64 1848.93 0.6419636048
162926.08 0.0000000 1848.93 1069.20 330550.63 779.72 0.00 779.72 1848.93 0.6389257970
162146.35 0.0000000 1848.93 1064.09 331614.71 784.84 0.00 784.84 1848.93 0.6358680537
161361.51 0.0000000 1848.93 1058.93 332673.65 789.99 0.00 789.99 1848.93 0.6327902439
160571.52 0.0000000 1848.93 1053.75 333727.40 795.18 0.00 795.18 1848.93 0.6296922359
159776.34 0.0000000 1848.93 1048.53 334775.93 800.39 0.00 800.39 1848.93 0.6265738973
158975.95 0.0000000 1848.93 1043.28 335819.21 805.65 0.00 805.65 1848.93 0.6234350946
158170.30 0.0000000 1848.93 1037.99 336857.20 810.93 0.00 810.93 1848.93 0.6202756934
157359.37 0.0000000 1848.93 1032.67 337889.87 816.26 0.00 816.26 1848.93 0.6170955588
156543.11 0.0000000 1848.93 1027.31 338917.19 821.61 0.00 821.61 1848.93 0.6138945544
155721.50 0.0000000 1848.93 1021.92 339939.11 827.00 0.00 827.00 1848.93 0.6106725435
154894.49 0.0000000 1848.93 1016.50 340955.60 832.43 0.00 832.43 1848.93 0.6074293882
154062.06 0.0000000 1848.93 1011.03 341966.64 837.89 0.00 837.89 1848.93 0.6041649496
153224.17 0.0000000 1848.93 1005.53 342972.17 843.39 0.00 843.39 1848.93 0.6008790882
152380.77 0.0000000 1848.93 1000.00 343972.17 848.93 0.00 848.93 1848.93 0.5975716633
151531.85 0.0000000 1848.93 994.43 344966.60 854.50 0.00 854.50 1848.93 0.5942425334
150677.35 0.0000000 1848.93 988.82 345955.42 860.11 0.00 860.11 1848.93 0.5908915561
149817.24 0.0000000 1848.93 983.18 346938.59 865.75 0.00 865.75 1848.93 0.5875185880
148951.49 0.0000000 1848.93 977.49 347916.09 871.43 0.00 871.43 1848.93 0.5841234848
148080.06 0.0000000 1848.93 971.78 348887.86 877.15 0.00 877.15 1848.93 0.5807061013
147202.90 0.0000000 1848.93 966.02 349853.88 882.91 0.00 882.91 1848.93 0.5772662911
146320.00 0.0000000 1848.93 960.22 350814.10 888.70 0.00 888.70 1848.93 0.5738039073
145431.29 0.0000000 1848.93 954.39 351768.50 894.53 0.00 894.53 1848.93 0.5703188015
144536.76 0.0000000 1848.93 948.52 352717.02 900.40 0.00 900.40 1848.93 0.5668108247
143636.36 0.0000000 1848.93 942.61 353659.63 906.31 0.00 906.31 1848.93 0.5632798268
142730.04 0.0000000 1848.93 936.67 354596.30 912.26 0.00 912.26 1848.93 0.5597256567
141817.78 0.0000000 1848.93 930.68 355526.98 918.25 0.00 918.25 1848.93 0.5561481624
140899.53 0.0000000 1848.93 924.65 356451.63 924.27 0.00 924.27 1848.93 0.5525471908
139975.26 0.0000000 1848.93 918.59 357370.22 930.34 0.00 930.34 1848.93 0.5489225879
139044.92 0.0000000 1848.93 912.48 358282.70 936.44 0.00 936.44 1848.93 0.5452741984
138108.48 0.0000000 1848.93 906.34 359189.04 942.59 0.00 942.59 1848.93 0.5416018664
137165.89 0.0000000 1848.93 900.15 360089.19 948.78 0.00 948.78 1848.93 0.5379054348
136217.11 0.0000000 1848.93 893.92 360983.11 955.00 0.00 955.00 1848.93 0.5341847452
135262.11 0.0000000 1848.93 887.66 361870.77 961.27 0.00 961.27 1848.93 0.5304396387
134300.84 0.0000000 1848.93 881.35 362752.12 967.58 0.00 967.58 1848.93 0.5266699549
133333.26 0.0000000 1848.93 875.00 363627.12 973.93 0.00 973.93 1848.93 0.5228755326
132359.33 0.0000000 1848.93 868.61 364495.73 980.32 0.00 980.32 1848.93 0.5190562093
131379.01 0.0000000 1848.93 862.17 365357.90 986.75 0.00 986.75 1848.93 0.5152118218
130392.26 0.0000000 1848.93 855.70 366213.60 993.23 0.00 993.23 1848.93 0.5113422055
129399.03 0.0000000 1848.93 849.18 367062.78 999.75 0.00 999.75 1848.93 0.5074471948
128399.29 0.0000000 1848.93 842.62 367905.40 1006.31 0.00 1006.31 1848.93 0.5035266231
127392.98 0.0000000 1848.93 836.02 368741.42 1012.91 0.00 1012.91 1848.93 0.4995803226
126380.07 0.0000000 1848.93 829.37 369570.79 1019.56 0.00 1019.56 1848.93 0.4956081245
125360.51 0.0000000 1848.93 822.68 370393.47 1026.25 0.00 1026.25 1848.93 0.4916098589
124334.27 0.0000000 1848.93 815.94 371209.41 1032.98 0.00 1032.98 1848.93 0.4875853547
123301.28 0.0000000 1848.93 809.16 372018.58 1039.76 0.00 1039.76 1848.93 0.4835344397
122261.52 0.0000000 1848.93 802.34 372820.92 1046.59 0.00 1046.59 1848.93 0.4794569405
121214.93 0.0000000 1848.93 795.47 373616.39 1053.45 0.00 1053.45 1848.93 0.4753526828
120161.48 0.0000000 1848.93 788.56 374404.95 1060.37 0.00 1060.37 1848.93 0.4712214908
119101.11 0.0000000 1848.93 781.60 375186.55 1067.33 0.00 1067.33 1848.93 0.4670631879
118033.79 0.0000000 1848.93 774.60 375961.15 1074.33 0.00 1074.33 1848.93 0.4628775962
116959.46 0.0000000 1848.93 767.55 376728.70 1081.38 0.00 1081.38 1848.93 0.4586645365
115878.08 0.0000000 1848.93 760.45 377489.15 1088.48 0.00 1088.48 1848.93 0.4544238286
114789.60 0.0000000 1848.93 753.31 378242.45 1095.62 0.00 1095.62 1848.93 0.4501552910
113693.98 0.0000000 1848.93 746.12 378988.57 1102.81 0.00 1102.81 1848.93 0.4458587412
112591.17 0.0000000 1848.93 738.88 379727.45 1110.05 0.00 1110.05 1848.93 0.4415339953
111481.12 0.0000000 1848.93 731.59 380459.04 1117.33 0.00 1117.33 1848.93 0.4371808682
110363.79 0.0000000 1848.93 724.26 381183.31 1124.66 0.00 1124.66 1848.93 0.4327991737
109239.12 0.0000000 1848.93 716.88 381900.19 1132.05 0.00 1132.05 1848.93 0.4283887244
108107.08 0.0000000 1848.93 709.45 382609.64 1139.47 0.00 1139.47 1848.93 0.4239493315
106967.61 0.0000000 1848.93 701.97 383311.61 1146.95 0.00 1146.95 1848.93 0.4194808050
105820.65 0.0000000 1848.93 694.45 384006.06 1154.48 0.00 1154.48 1848.93 0.4149829539
104666.17 0.0000000 1848.93 686.87 384692.93 1162.06 0.00 1162.06 1848.93 0.4104555856
103504.12 0.0000000 1848.93 679.25 385372.18 1169.68 0.00 1169.68 1848.93 0.4058985065
102334.44 0.0000000 1848.93 671.57 386043.75 1177.36 0.00 1177.36 1848.93 0.4013115215
101157.08 0.0000000 1848.93 663.84 386707.59 1185.08 0.00 1185.08 1848.93 0.3966944344
99972.00 0.0000000 1848.93 656.07 387363.66 1192.86 0.00 1192.86 1848.93 0.3920470477
98779.14 0.0000000 1848.93 648.24 388011.90 1200.69 0.00 1200.69 1848.93 0.3873691626
97578.45 0.0000000 1848.93 640.36 388652.26 1208.57 0.00 1208.57 1848.93 0.3826605788
96369.88 0.0000000 1848.93 632.43 389284.68 1216.50 0.00 1216.50 1848.93 0.3779210949
95153.38 0.0000000 1848.93 624.44 389909.13 1224.48 0.00 1224.48 1848.93 0.3731505082
93928.90 0.0000000 1848.93 616.41 390525.54 1232.52 0.00 1232.52 1848.93 0.3683486145
92696.38 0.0000000 1848.93 608.32 391133.86 1240.61 0.00 1240.61 1848.93 0.3635152083
91455.77 0.0000000 1848.93 600.18 391734.03 1248.75 0.00 1248.75 1848.93 0.3586500830
90207.02 0.0000000 1848.93 591.98 392326.02 1256.94 0.00 1256.94 1848.93 0.3537530302
88950.08 0.0000000 1848.93 583.73 392909.75 1265.19 0.00 1265.19 1848.93 0.3488238405
87684.89 0.0000000 1848.93 575.43 393485.19 1273.49 0.00 1273.49 1848.93 0.3438623031
86411.39 0.0000000 1848.93 567.07 394052.26 1281.85 0.00 1281.85 1848.93 0.3388682055
85129.54 0.0000000 1848.93 558.66 394610.92 1290.26 0.00 1290.26 1848.93 0.3338413342
83839.28 0.0000000 1848.93 550.20 395161.12 1298.73 0.00 1298.73 1848.93 0.3287814740
82540.54 0.0000000 1848.93 541.67 395702.79 1307.25 0.00 1307.25 1848.93 0.3236884085
81233.29 0.0000000 1848.93 533.09 396235.88 1315.83 0.00 1315.83 1848.93 0.3185619198
79917.46 0.0000000 1848.93 524.46 396760.34 1324.47 0.00 1324.47 1848.93 0.3134017885
78592.99 0.0000000 1848.93 515.77 397276.11 1333.16 0.00 1333.16 1848.93 0.3082077938
77259.83 0.0000000 1848.93 507.02 397783.13 1341.91 0.00 1341.91 1848.93 0.3029797135
75917.92 0.0000000 1848.93 498.21 398281.34 1350.72 0.00 1350.72 1848.93 0.2977173240
74567.20 0.0000000 1848.93 489.35 398770.68 1359.58 0.00 1359.58 1848.93 0.2924204000
73207.62 0.0000000 1848.93 480.43 399251.11 1368.50 0.00 1368.50 1848.93 0.2870887149
71839.12 0.0000000 1848.93 471.44 399722.55 1377.48 0.00 1377.48 1848.93 0.2817220407
70461.64 0.0000000 1848.93 462.40 400184.96 1386.52 0.00 1386.52 1848.93 0.2763201477
69075.12 0.0000000 1848.93 453.31 400638.26 1395.62 0.00 1395.62 1848.93 0.2708828047
67679.49 0.0000000 1848.93 444.15 401082.41 1404.78 0.00 1404.78 1848.93 0.2654097792
66274.71 0.0000000 1848.93 434.93 401517.34 1414.00 0.00 1414.00 1848.93 0.2599008370
64860.71 0.0000000 1848.93 425.65 401942.99 1423.28 0.00 1423.28 1848.93 0.2543557423
63437.44 0.0000000 1848.93 416.31 402359.29 1432.62 0.00 1432.62 1848.93 0.2487742579
62004.82 0.0000000 1848.93 406.91 402766.20 1442.02 0.00 1442.02 1848.93 0.2431561451
60562.80 0.0000000 1848.93 397.44 403163.64 1451.48 0.00 1451.48 1848.93 0.2375011633
59111.31 0.0000000 1848.93 387.92 403551.56 1461.01 0.00 1461.01 1848.93 0.2318090708
57650.30 0.0000000 1848.93 378.33 403929.89 1470.60 0.00 1470.60 1848.93 0.2260796239
56179.71 0.0000000 1848.93 368.68 404298.57 1480.25 0.00 1480.25 1848.93 0.2203125775
54699.46 0.0000000 1848.93 358.97 404657.54 1489.96 0.00 1489.96 1848.93 0.2145076849
53209.50 0.0000000 1848.93 349.19 405006.72 1499.74 0.00 1499.74 1848.93 0.2086646976
51709.76 0.0000000 1848.93 339.35 405346.07 1509.58 0.00 1509.58 1848.93 0.2027833658
50200.18 0.0000000 1848.93 329.44 405675.51 1519.49 0.00 1519.49 1848.93 0.1968634377
48680.69 0.0000000 1848.93 319.47 405994.98 1529.46 0.00 1529.46 1848.93 0.1909046601
47151.23 0.0000000 1848.93 309.43 406304.41 1539.50 0.00 1539.50 1848.93 0.1849067780
45611.73 0.0000000 1848.93 299.33 406603.73 1549.60 0.00 1549.60 1848.93 0.1788695348
44062.13 0.0000000 1848.93 289.16 406892.89 1559.77 0.00 1559.77 1848.93 0.1727926722
42502.36 0.0000000 1848.93 278.92 407171.81 1570.01 0.00 1570.01 1848.93 0.1666759302
40932.36 0.0000000 1848.93 268.62 407440.43 1580.31 0.00 1580.31 1848.93 0.1605190471
39352.05 0.0000000 1848.93 258.25 407698.68 1590.68 0.00 1590.68 1848.93 0.1543217594
37761.37 0.0000000 1848.93 247.81 407946.49 1601.12 0.00 1601.12 1848.93 0.1480838020
36160.25 0.0000000 1848.93 237.30 408183.79 1611.63 0.00 1611.63 1848.93 0.1418049081
34548.63 0.0000000 1848.93 226.73 408410.51 1622.20 0.00 1622.20 1848.93 0.1354848089
32926.42 0.0000000 1848.93 216.08 408626.59 1632.85 0.00 1632.85 1848.93 0.1291232340
31293.58 0.0000000 1848.93 205.36 408831.96 1643.56 0.00 1643.56 1848.93 0.1227199113
29650.01 0.0000000 1848.93 194.58 409026.54 1654.35 0.00 1654.35 1848.93 0.1162745668
27995.67 0.0000000 1848.93 183.72 409210.26 1665.21 0.00 1665.21 1848.93 0.1097869247
26330.46 0.0000000 1848.93 172.79 409383.05 1676.13 0.00 1676.13 1848.93 0.1032567075
24654.33 0.0000000 1848.93 161.79 409544.85 1687.13 0.00 1687.13 1848.93 0.0966836357
22967.19 0.0000000 1848.93 150.72 409695.57 1698.20 0.00 1698.20 1848.93 0.0900674281
21268.99 0.0000000 1848.93 139.58 409835.15 1709.35 0.00 1709.35 1848.93 0.0834078017
19559.64 0.0000000 1848.93 128.36 409963.51 1720.57 0.00 1720.57 1848.93 0.0767044715
17839.07 0.0000000 1848.93 117.07 410080.57 1731.86 0.00 1731.86 1848.93 0.0699571507
16107.22 0.0000000 1848.93 105.70 410186.28 1743.22 0.00 1743.22 1848.93 0.0631655505
14363.99 0.0000000 1848.93 94.26 410280.54 1754.66 0.00 1754.66 1848.93 0.0563293806
12609.33 0.0000000 1848.93 82.75 410363.29 1766.18 0.00 1766.18 1848.93 0.0494483482
10843.15 0.0000000 1848.93 71.16 410434.45 1777.77 0.00 1777.77 1848.93 0.0425221591
9065.38 0.0000000 1848.93 59.49 410493.94 1789.44 0.00 1789.44 1848.93 0.0355505168
7275.95 0.0000000 1848.93 47.75 410541.69 1801.18 0.00 1801.18 1848.93 0.0285331231
5474.77 0.0000000 1848.93 35.93 410577.62 1813.00 0.00 1813.00 1848.93 0.0214696778
3661.77 0.0000000 1848.93 24.03 410601.65 1824.90 0.00 1824.90 1848.93 0.0143598787
1836.87 0.0000000 1848.93 12.05 410613.70 1836.87 0.00 1836.87 1848.93 0.0072034215

BIN
cashflow/CASHFLOW.ncb Normal file

Binary file not shown.

79
cashflow/CLRRECT.HPP Normal file
View File

@@ -0,0 +1,79 @@
#ifndef _CASHFLOW_COLORRECT_HPP_
#define _CASHFLOW_COLORRECT_HPP_
#ifndef _ENGINE_RECT3D_HPP_
#include <engine/rect3d.hpp>
#endif
class ColorRect : public Rect3D
{
public:
ColorRect(void);
ColorRect(const ColorRect &someColorRect);
ColorRect(const Rect3D &someRect3D,BYTE paletteIndex);
ColorRect(const ColorRect &someColorRect,BYTE paletteIndex);
virtual~ColorRect();
ColorRect &operator=(const ColorRect &someColorRect);
WORD operator==(const ColorRect &someColorRect);
BYTE paletteIndex(void)const;
void paletteIndex(BYTE paletteIndex);
private:
BYTE mPaletteIndex;
};
inline
ColorRect::ColorRect(void)
: mPaletteIndex(0)
{
}
inline
ColorRect::ColorRect(const ColorRect &someColorRect)
{
*this=someColorRect;
}
inline
ColorRect::ColorRect(const ColorRect &someColorRect,BYTE paletteIndex)
: Rect3D((Rect3D&)someColorRect), mPaletteIndex(paletteIndex)
{
}
inline
ColorRect::ColorRect(const Rect3D &someRect3D,BYTE paletteIndex)
: mPaletteIndex(paletteIndex)
{
(Rect3D&)*this=(Rect3D&)someRect3D;
}
inline
ColorRect::~ColorRect()
{
}
inline
ColorRect &ColorRect::operator=(const ColorRect &someColorRect)
{
(Rect3D&)*this=(Rect3D&)someColorRect;
paletteIndex(someColorRect.paletteIndex());
return *this;
}
inline
WORD ColorRect::operator==(const ColorRect &someColorRect)
{
return ((Rect3D&)*this==(Rect3D&)someColorRect&&
paletteIndex()==someColorRect.paletteIndex());
}
inline
BYTE ColorRect::paletteIndex(void)const
{
return mPaletteIndex;
}
inline
void ColorRect::paletteIndex(BYTE paletteIndex)
{
mPaletteIndex=paletteIndex;
}
#endif

20
cashflow/GRAPH3D.CPP Normal file
View File

@@ -0,0 +1,20 @@
#include <cashflow/graph3d.hpp>
Graph3D::Graph3D(GUIWindow &someGUIWindow)
: mlpGUIWindow(&someGUIWindow), DIB3D(someGUIWindow)
{
}
Graph3D::~Graph3D()
{
}
WORD Graph3D::viewPortWidth(void)const
{
return mlpGUIWindow->width();
}
WORD Graph3D::viewPortHeight(void)const
{
return mlpGUIWindow->height();
}

29
cashflow/GRAPH3D.HPP Normal file
View File

@@ -0,0 +1,29 @@
#ifndef _CASHFLOW_GRAPH3D_HPP_
#define _CASHFLOW_GRAPH3D_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _ENGINE_DIB3D_HPP_
#include <engine/dib3d.hpp>
#endif
class Graph3D : public DIB3D
{
public:
Graph3D(GUIWindow &someGUIWindow);
virtual ~Graph3D();
protected:
WORD viewPortWidth(void)const;
WORD viewPortHeight(void)const;
private:
Graph3D &operator=(const Graph3D &someGraph3D);
GUIWindow *mlpGUIWindow;
};
inline
Graph3D &Graph3D::operator=(const Graph3D &/*someGraph3D*/)
{ // private implementation
return *this;
}
#endif

235
cashflow/GRAPHWND.CPP Normal file
View File

@@ -0,0 +1,235 @@
#include <cashflow/graphwnd.hpp>
#include <cashflow/graph3d.hpp>
#include <cashflow/purecflo.hpp>
#include <cashflow/clrrect.hpp>
#include <engine/spacial.hpp>
#include <engine/rect3d.hpp>
#include <common/string.hpp>
#include <common/rect.hpp>
char GraphWindow::smszClassName[]={"GraphWindow"};
char GraphWindow::smszMenuName[]={""};
#pragma warning(disable:4355)
GraphWindow::GraphWindow(GUIWindow &parentWindow,const Rect &winRect)
{
mPaintHandler.setCallback(this,&GraphWindow::paintHandler);
mCreateHandler.setCallback(this,&GraphWindow::createHandler);
mDestroyHandler.setCallback(this,&GraphWindow::destroyHandler);
mKeyDownHandler.setCallback(this,&GraphWindow::keyDownHandler);
mLeftButtonDownHandler.setCallback(this,&GraphWindow::leftButtonDownHandler);
mDialogCodeHandler.setCallback(this,&GraphWindow::dialogCodeHandler);
insertHandler(VectorHandler::PaintHandler,&mPaintHandler);
insertHandler(VectorHandler::CreateHandler,&mCreateHandler);
insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
insertHandler(VectorHandler::KeyDownHandler,&mKeyDownHandler);
insertHandler(VectorHandler::LeftButtonDownHandler,&mLeftButtonDownHandler);
insertHandler(VectorHandler::DialogCodeHandler,&mDialogCodeHandler);
registerClass();
createWindow(parentWindow,winRect);
mGraph3D=new Graph3D(*this);
mGraph3D.disposition(PointerDisposition::Delete);
setPerspective();
show(SW_SHOW);
update();
}
GraphWindow::GraphWindow(const GraphWindow &/*someGraphWindow*/)
{ // private implementation
}
GraphWindow::~GraphWindow()
{
removeHandler(VectorHandler::PaintHandler,&mPaintHandler);
removeHandler(VectorHandler::CreateHandler,&mCreateHandler);
removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
removeHandler(VectorHandler::KeyDownHandler,&mKeyDownHandler);
removeHandler(VectorHandler::LeftButtonDownHandler,&mLeftButtonDownHandler);
removeHandler(VectorHandler::DialogCodeHandler,&mDialogCodeHandler);
}
void GraphWindow::registerClass(void)const
{
HINSTANCE hInstance(processInstance());
WNDCLASS wndClass;
if(::GetClassInfo(hInstance,smszClassName,(WNDCLASS FAR*)&wndClass))return;
wndClass.style =CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS|CS_OWNDC;
wndClass.lpfnWndProc =(WNDPROC)Window::WndProc;
wndClass.cbClsExtra =0;
wndClass.cbWndExtra =sizeof(GraphWindow*);
wndClass.hInstance =hInstance;
wndClass.hIcon =::LoadIcon(NULL,IDI_APPLICATION);
wndClass.hCursor =::LoadCursor(NULL,IDC_ARROW);
wndClass.hbrBackground =(HBRUSH)::GetStockObject(HOLLOW_BRUSH);
wndClass.lpszMenuName =smszMenuName;
wndClass.lpszClassName =smszClassName;
::RegisterClass(&wndClass);
assert(0!=::GetClassInfo(hInstance,smszClassName,(WNDCLASS FAR*)&wndClass));
}
void GraphWindow::createWindow(GUIWindow &parentWindow,const Rect &winRect)
{
Window::createWindow(WS_EX_CLIENTEDGE,String(smszClassName),String(smszMenuName),
WS_CHILD|WS_OVERLAPPED|WS_CLIPCHILDREN|WS_BORDER,winRect,
parentWindow,(HMENU)103,processInstance(),(LPSTR)this);
show(SW_SHOW);
update();
}
CallbackData::ReturnType GraphWindow::paintHandler(CallbackData &someCallbackData)
{
if(!mGraph3D.isOkay())return (CallbackData::ReturnType)FALSE;
PaintInformation *pPaintInfo=(PaintInformation*)someCallbackData.lParam();
mGraph3D->clearBits();
for(int rectIndex=0;rectIndex<mGraphRects.size();rectIndex++)
{
ColorRect &colorRect=mGraphRects[rectIndex];
mGraph3D->rectangle(colorRect,colorRect.paletteIndex());
}
mGraph3D->bitBlt((PureDevice&)*pPaintInfo);
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType GraphWindow::createHandler(CallbackData &/*someCallbackData*/)
{
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType GraphWindow::leftButtonDownHandler(CallbackData &/*someCallbackData*/)
{
setFocus();
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType GraphWindow::dialogCodeHandler(CallbackData &/*someCallbackData*/)
{
return (CallbackData::ReturnType)DLGC_WANTARROWS|DLGC_WANTCHARS;
}
CallbackData::ReturnType GraphWindow::keyDownHandler(CallbackData &someCallbackData)
{
switch(someCallbackData.wParam())
{
case inKey :
if(shiftKeyPressed())mGraph3D->cameraTwistDegrees(mGraph3D->cameraTwistDegrees()-ThetaDelta);
mGraph3D->viewPlaneDistance(mGraph3D->viewPlaneDistance()+ViewDelta);
invalidate(FALSE);
break;
case outKey :
if(shiftKeyPressed())mGraph3D->cameraTwistDegrees(mGraph3D->cameraTwistDegrees()+ThetaDelta);
mGraph3D->viewPlaneDistance(mGraph3D->viewPlaneDistance()-ViewDelta);
invalidate(FALSE);
break;
case UpArrow :
if(handleUpArrow())invalidate(FALSE);
break;
case DownArrow :
if(handleDownArrow())invalidate(FALSE);
break;
case LeftArrow :
if(handleLeftArrow())invalidate(FALSE);
break;
case RightArrow :
if(handleRightArrow())invalidate(FALSE);
break;
}
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType GraphWindow::destroyHandler(CallbackData &/*someCallbackData*/)
{
return (CallbackData::ReturnType)FALSE;
}
void GraphWindow::showFlows(Block<PureCashFlow> &pureCashFlows,int baseMonths)
{
PureVector<int> vectorInt;
mGraphRects.remove();
setPerspective();
vectorInt.size(pureCashFlows.size());
for(int itemIndex=0;itemIndex<pureCashFlows.size();itemIndex++)vectorInt[itemIndex]=int(pureCashFlows[itemIndex].totPrin());
showFlows(pureCashFlows,baseMonths,vectorInt,32);
for(itemIndex=0;itemIndex<pureCashFlows.size();itemIndex++)vectorInt[itemIndex]=int(pureCashFlows[itemIndex].netIntPay());
showFlows(pureCashFlows,baseMonths,vectorInt,30,10);
invalidate();
}
void GraphWindow::showFlows(Block<PureCashFlow> &pureCashFlows,int baseMonths,PureVector<int> &vectorInt,BYTE paletteIndex,int zDepth)
{
PureVector<int> scrnInt;
int widthAdjust(5);
clamp(vectorInt);
WORD sizeFactor(((((float)width()-20)/(float)widthAdjust)/(float)baseMonths)*100.00);
SpacialTransform resample;
resample.transform(vectorInt,scrnInt,sizeFactor);
for(int itemIndex=0,xPoint=widthAdjust;itemIndex<scrnInt.size();itemIndex++,xPoint+=widthAdjust)
{
Vector3D outerPlane(Point3D(xPoint,scrnInt[itemIndex]+1,zDepth),
Point3D(xPoint+widthAdjust,scrnInt[itemIndex]+1,zDepth),
Point3D(xPoint+widthAdjust,0,zDepth),
Point3D(xPoint,0,zDepth));
Rect3D rect3D(outerPlane,10);
mGraphRects.insert(&ColorRect(rect3D,paletteIndex));
}
}
void GraphWindow::clamp(PureVector<int> &vectorInt)
{
float factor=0.00;
int vectorMax;
if(!vectorInt.size())return;
for(int itemIndex=0;itemIndex<vectorInt.size();itemIndex++)
{
if(!itemIndex)vectorMax=vectorInt[itemIndex];
else if(vectorInt[itemIndex]>vectorMax)vectorMax=vectorInt[itemIndex];
}
factor=(1.00/(float)vectorMax);
for(itemIndex=0;itemIndex<vectorInt.size();itemIndex++)vectorInt[itemIndex]=(float)vectorInt[itemIndex]*factor*100.00;
}
WORD GraphWindow::handleUpArrow(void)
{
Point3D cameraPoint(mGraph3D->cameraPoint());
cameraPoint.y(cameraPoint.y()+TurnDelta);
mGraph3D->cameraPoint(cameraPoint);
return TRUE;
}
WORD GraphWindow::handleDownArrow(void)
{
Point3D cameraPoint(mGraph3D->cameraPoint());
cameraPoint.y(cameraPoint.y()-TurnDelta);
mGraph3D->cameraPoint(cameraPoint);
return TRUE;
}
WORD GraphWindow::handleLeftArrow(void)
{
Point3D cameraPoint(mGraph3D->cameraPoint());
if(shiftKeyPressed())mGraph3D->cameraTwistDegrees(mGraph3D->cameraTwistDegrees()-ThetaDelta);
else cameraPoint.x(cameraPoint.x()+TurnDelta);
mGraph3D->cameraPoint(cameraPoint);
return TRUE;
}
WORD GraphWindow::handleRightArrow(void)
{
Point3D cameraPoint(mGraph3D->cameraPoint());
if(shiftKeyPressed())mGraph3D->cameraTwistDegrees(mGraph3D->cameraTwistDegrees()+ThetaDelta);
else cameraPoint.x(cameraPoint.x()-TurnDelta);
mGraph3D->cameraPoint(cameraPoint);
return TRUE;
}
void GraphWindow::setPerspective(void)
{
mGraph3D->cameraTwistDegrees(134.64);
mGraph3D->viewPlaneDistance(40);
mGraph3D->cameraPoint(Point3D(-385,75,75));
mGraph3D->focusPoint(Point3D(0,0,1));
}

73
cashflow/GRAPHWND.HPP Normal file
View File

@@ -0,0 +1,73 @@
#ifndef _CASHFLOW_GRAPHWINDOW_HPP_
#define _CASHFLOW_GRAPHWINDOW_HPP_
#ifndef _COMMON_WINDOW_HPP_
#include <common/window.hpp>
#endif
#ifndef _COMMON_SMARTPOINTER_HPP_
#include <common/pointer.hpp>
#endif
template <class T>
class Block;
template <class T>
class Callback;
template <class T>
class PureVector;
class PureCashFlow;
class Graph3D;
class Rect3D;
class ColorRect;
class GraphWindow : public Window
{
public:
GraphWindow(GUIWindow &parentWindow,const Rect &winRect);
virtual ~GraphWindow();
void showFlows(Block<PureCashFlow> &pureCashFlows,int baseMonths);
private:
enum {MaxRotate=360,MinRotate=-360};
enum {ThetaDelta=10,ViewDelta=5,TurnDelta=20};
enum {LeftArrow=0x25,RightArrow=0x27,UpArrow=0x26,DownArrow=0x28,inKey=0x49,outKey=0x4F};
GraphWindow(const GraphWindow &someGraphWindow);
GraphWindow &operator=(const GraphWindow &someGraphWindow);
void registerClass(void)const;
void showFlows(Block<PureCashFlow> &pureCashFlows,int baseMonths,PureVector<int> &vectorInt,BYTE paletteIndex,int zDepth=0);
void createWindow(GUIWindow &parentWindow,const Rect &winRect);
void clamp(PureVector<int> &vectorInt);
WORD handleLeftArrow(void);
WORD handleRightArrow(void);
WORD handleUpArrow(void);
WORD handleDownArrow(void);
void setPerspective(void);
BOOL shiftKeyPressed(void)const;
CallbackData::ReturnType paintHandler(CallbackData &someCallbackData);
CallbackData::ReturnType createHandler(CallbackData &someCallbackData);
CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData);
CallbackData::ReturnType keyDownHandler(CallbackData &someCallbackData);
CallbackData::ReturnType leftButtonDownHandler(CallbackData &someCallbackData);
CallbackData::ReturnType dialogCodeHandler(CallbackData &someCallbackData);
Callback<GraphWindow> mPaintHandler;
Callback<GraphWindow> mCreateHandler;
Callback<GraphWindow> mDestroyHandler;
Callback<GraphWindow> mKeyDownHandler;
Callback<GraphWindow> mLeftButtonDownHandler;
Callback<GraphWindow> mDialogCodeHandler;
SmartPointer<Graph3D> mGraph3D;
Block<ColorRect> mGraphRects;
static char smszClassName[];
static char smszMenuName[];
};
inline
GraphWindow &GraphWindow::operator=(const GraphWindow &/*someGraphWindow*/)
{ // private implementation
return *this;
}
inline
BOOL GraphWindow::shiftKeyPressed(void)const
{
return ::GetKeyState(VK_SHIFT)&0x8000;
}
#endif

22
cashflow/Irr.hpp Normal file
View File

@@ -0,0 +1,22 @@
#ifndef _CASHFLOW_IRR_HPP_
#define _CASHFLOW_IRR_HPP_
#ifndef _COMMON_ARRAY_HPP_
#include <common/array.hpp>
#endif
#ifndef _COMMON_MATH_HPP_
#include <common/math.hpp>
#endif
class IRR
{
public:
static double irr(Array<double> &cashflows);
static double npv(Array<double> &cashflows,double rate);
static double pv(Array<double> &cashflows,double rate);
static double pvD(Array<double> &cashflows,double rate);
private:
static double IRR_ERROR;
static double IRR_ACCURACY;
static int IRR_MAX_ITERATIONS;
};
#endif

10
cashflow/MAIN.CPP Normal file
View File

@@ -0,0 +1,10 @@
#include <common/windows.hpp>
#include <cashflow/calcdlg.hpp>
int PASCAL WinMain(HINSTANCE /*hInstance*/,HINSTANCE /*hPrevInstance*/,LPSTR /*lpszCmdLine*/,int /*nCmdShow*/)
{
CalcDlg calcDialog;
calcDialog.createDialog((HWND)0);
return FALSE;
}

153
cashflow/PASSTHRU.HPP Normal file
View File

@@ -0,0 +1,153 @@
#ifndef _CASHFLOW_PUREPASSTHRU_HPP_
#define _CASHFLOW_PUREPASSTHRU_HPP_
#include <common/windows.hpp>
class PurePassThru
{
public:
PurePassThru(void);
PurePassThru(double issBal,double wac,double coupon,short wam,short origTerm,double psa);
PurePassThru(const PurePassThru &somePurePassThru);
~PurePassThru();
PurePassThru &operator=(const PurePassThru &somePurePassThru);
WORD size(void)const;
double issBal(void)const;
void issBal(double newIssBal);
double wac(void)const;
void wac(double newWAC);
double coupon(void)const;
void coupon(double newCoupon);
short wam(void)const;
void wam(short newWAM);
short origTerm(void)const;
void origTerm(short newOrigTerm);
double psa(void)const;
void psa(double newPSA);
private:
WORD mSanity;
double mIssBal;
double mWAC;
double mCoupon;
short mWAM;
short mOrigTerm;
double mPSA;
};
#pragma warning(disable:4355)
inline
PurePassThru::PurePassThru(void)
: mSanity(sizeof(*this)), mIssBal(0.00), mWAC(0.00), mCoupon(0.00), mWAM(0), mOrigTerm(0),
mPSA(100.00)
{
}
inline
PurePassThru::PurePassThru(const PurePassThru &somePurePassThru)
: mSanity(sizeof(*this))
{
*this=somePurePassThru;
}
inline
PurePassThru::PurePassThru(double issBal,double wac,double coupon,short wam,short origTerm,double psa)
: mSanity(sizeof(*this)), mIssBal(issBal), mWAC(wac), mCoupon(coupon), mWAM(wam),
mOrigTerm(origTerm), mPSA(psa)
{
}
#pragma warning(default:4355)
inline
PurePassThru::~PurePassThru()
{
}
inline
double PurePassThru::issBal(void)const
{
return mIssBal;
}
inline
void PurePassThru::issBal(double newIssBal)
{
mIssBal=newIssBal;
}
inline
double PurePassThru::wac(void)const
{
return mWAC;
}
inline
void PurePassThru::wac(double newWAC)
{
mWAC=newWAC;
}
inline
double PurePassThru::coupon(void)const
{
return mCoupon;
}
inline
void PurePassThru::coupon(double newCoupon)
{
mCoupon=newCoupon;
}
inline
short PurePassThru::wam(void)const
{
return mWAM;
}
inline
void PurePassThru::wam(short newWAM)
{
mWAM=newWAM;
}
inline
short PurePassThru::origTerm(void)const
{
return mOrigTerm;
}
inline
void PurePassThru::origTerm(short newOrigTerm)
{
mOrigTerm=newOrigTerm;
}
inline
double PurePassThru::psa(void)const
{
return mPSA;
}
inline
void PurePassThru::psa(double newPSA)
{
mPSA=newPSA;
}
inline
WORD PurePassThru::size(void)const
{
return mSanity;
}
inline
PurePassThru &PurePassThru::operator=(const PurePassThru &somePurePassThru)
{
issBal(somePurePassThru.issBal());
wac(somePurePassThru.wac());
coupon(somePurePassThru.coupon());
wam(somePurePassThru.wam());
origTerm(somePurePassThru.origTerm());
psa(somePurePassThru.psa());
return *this;
}
#endif

63
cashflow/PPYDLG.CPP Normal file
View File

@@ -0,0 +1,63 @@
#include <common/stdio.hpp>
#include <common/string.hpp>
#include <cashflow/ppydlg.hpp>
#include <cashflow/cashdefs.hpp>
CallbackData::ReturnType PPYDlg::initHandler(CallbackData &/*someCallbackData*/)
{
String workString;
::sprintf(workString,"%d",mPrePay.frequency());
setText(PPY_FREQUENCY,workString);
::sprintf(workString,"%9.2lf",mPrePay.amount());
setText(PPY_AMOUNT,workString);
::sprintf(workString,"%9.2lf",mPrePay.increment());
setText(PPY_INCREMENT,workString);
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType PPYDlg::destroyHandler(CallbackData &/*someCallbackData*/)
{
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType PPYDlg::closeHandler(CallbackData &/*someCallbackData*/)
{
endDialog(TRUE);
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType PPYDlg::commandHandler(CallbackData &someCallbackData)
{
switch(someCallbackData.wmCommandID())
{
case IDCANCEL :
endDialog(FALSE);
break;
case IDOK :
getPPYInfo();
endDialog(TRUE);
break;
case PPY_FREQUENCY :
break;
case PPY_INCREMENT :
break;
case PPY_AMOUNT :
break;
}
return (CallbackData::ReturnType)FALSE;
}
void PPYDlg::getPPYInfo(void)
{
String workString;
getText(PPY_FREQUENCY,workString);
mPrePay.frequency(::atoi((LPSTR)workString));
getText(PPY_INCREMENT,workString);
mPrePay.increment(::atoi((LPSTR)workString));
getText(PPY_AMOUNT,workString);
mPrePay.amount(::atof((LPSTR)workString));
}

60
cashflow/PPYDLG.HPP Normal file
View File

@@ -0,0 +1,60 @@
#ifndef _CASHFLOW_PPYDLG_HPP_
#define _CASHFLOW_PPYDLG_HPP_
#include <common/dwindow.hpp>
#include <cashflow/prepay.hpp>
class PPYDlg : private DWindow
{
public:
PPYDlg(void);
virtual ~PPYDlg();
WORD createDialog(HWND hParent,PrePay &prePay);
private:
CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData);
CallbackData::ReturnType initHandler(CallbackData &someCallbackData);
CallbackData::ReturnType commandHandler(CallbackData &someCallbackData);
CallbackData::ReturnType closeHandler(CallbackData &someCallbackData);
void getPPYInfo(void);
Callback<PPYDlg> mCommandHandler;
Callback<PPYDlg> mDestroyHandler;
Callback<PPYDlg> mInitHandler;
Callback<PPYDlg> mCloseHandler;
PrePay mPrePay;
};
#pragma warning(disable:4355)
inline
PPYDlg::PPYDlg(void)
{
mDestroyHandler.setCallback(this,&PPYDlg::destroyHandler);
mInitHandler.setCallback(this,&PPYDlg::initHandler);
mCommandHandler.setCallback(this,&PPYDlg::commandHandler);
mCloseHandler.setCallback(this,&PPYDlg::closeHandler);
insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
insertHandler(VectorHandler::InitDialogHandler,&mInitHandler);
insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
insertHandler(VectorHandler::CloseHandler,&mCloseHandler);
}
#pragma warning(default:4355)
inline
PPYDlg::~PPYDlg()
{
removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
removeHandler(VectorHandler::InitDialogHandler,&mInitHandler);
removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
removeHandler(VectorHandler::CloseHandler,&mCloseHandler);
}
inline
WORD PPYDlg::createDialog(HWND hParent,PrePay &prePay)
{
WORD returnCode;
mPrePay=prePay;
HINSTANCE hInstance((HINSTANCE)::GetWindowLong(hParent,GWL_HINSTANCE));
returnCode=::DialogBoxParam(hInstance,(LPSTR)"Prepayments",hParent,DWindow::DlgProc,(LPARAM)(DWindow*)this);
if(returnCode)prePay=mPrePay;
return returnCode;
}
#endif

110
cashflow/PREPAY.HPP Normal file
View File

@@ -0,0 +1,110 @@
#ifndef _CASHFLOW_PREPAY_HPP_
#define _CASHFLOW_PREPAY_HPP_
class PrePay
{
public:
PrePay(void);
PrePay(const PrePay &somePrePay);
virtual ~PrePay();
PrePay &operator=(const PrePay &somePrePay);
WORD operator==(const PrePay &somePrePay);
double amount(void)const;
void amount(double amount);
double increment(void)const;
void increment(double increment);
short frequency(void)const;
void frequency(short frequency);
short period(void)const;
void period(short period);
private:
double mAmount;
double mIncrement;
short mFrequency;
short mPeriod;
};
inline
PrePay::PrePay(void)
: mAmount(0.00), mIncrement(0.00), mFrequency(0), mPeriod(1)
{
}
inline
PrePay::~PrePay()
{
}
inline
PrePay::PrePay(const PrePay &somePrePay)
{
*this=somePrePay;
}
inline
PrePay &PrePay::operator=(const PrePay &somePrePay)
{
amount(somePrePay.amount());
increment(somePrePay.increment());
frequency(somePrePay.frequency());
period(somePrePay.period());
return *this;
}
inline
WORD PrePay::operator==(const PrePay &somePrePay)
{
return (amount()==somePrePay.amount()&&
increment()==somePrePay.increment()&&
frequency()==somePrePay.frequency()&&
period()==somePrePay.period());
}
inline
double PrePay::amount(void)const
{
return mAmount;
}
inline
void PrePay::amount(double amount)
{
mAmount=amount;
}
inline
double PrePay::increment(void)const
{
return mIncrement;
}
inline
void PrePay::increment(double increment)
{
mIncrement=increment;
}
inline
short PrePay::frequency(void)const
{
return mFrequency;
}
inline
void PrePay::frequency(short frequency)
{
mFrequency=frequency;
}
inline
short PrePay::period(void)const
{
return mPeriod;
}
inline
void PrePay::period(short period)
{
mPeriod=period;
}
#endif

87
cashflow/PURECFLO.CPP Normal file
View File

@@ -0,0 +1,87 @@
#include <stdio.h>
#include <cashflow/purecflo.hpp>
#include <common/block.hpp>
void PureCashFlow::operator=(const PureCashFlow &somePureCashFlow)
{
mBeginBal=somePureCashFlow.mBeginBal;
mSMM=somePureCashFlow.mSMM;
mMtgPay=somePureCashFlow.mMtgPay;
mNetIntPay=somePureCashFlow.mNetIntPay;
mGrossIntPay=somePureCashFlow.mGrossIntPay;
mSchedPrinPay=somePureCashFlow.mSchedPrinPay;
mPrepayment=somePureCashFlow.mPrepayment;
mTotPrin=somePureCashFlow.mTotPrin;
mCashFlow=somePureCashFlow.mCashFlow;
mFactor=somePureCashFlow.mFactor;
}
WORD PureCashFlow::operator==(const PureCashFlow &somePureCashFlow)const
{
if(!(mBeginBal==somePureCashFlow.mBeginBal))return FALSE;
if(!(mSMM==somePureCashFlow.mSMM))return FALSE;
if(!(mMtgPay==somePureCashFlow.mMtgPay))return FALSE;
if(!(mNetIntPay==somePureCashFlow.mNetIntPay))return FALSE;
if(!(mGrossIntPay==somePureCashFlow.mGrossIntPay))return FALSE;
if(!(mSchedPrinPay==somePureCashFlow.mSchedPrinPay))return FALSE;
if(!(mPrepayment==somePureCashFlow.mPrepayment))return FALSE;
if(!(mTotPrin==somePureCashFlow.mTotPrin))return FALSE;
if(!(mCashFlow==somePureCashFlow.mCashFlow))return FALSE;
if(!(mFactor==somePureCashFlow.mFactor))return FALSE;
return TRUE;
}
strstream &PureCashFlow::operator>>(strstream &stream)const
{
char commaString[]=",";
stream << mBeginBal << commaString << mSMM << commaString << mMtgPay <<
commaString << mNetIntPay << commaString << mGrossIntPay << commaString <<
mSchedPrinPay << commaString << mPrepayment << commaString << mTotPrin <<
commaString << mCashFlow << commaString << mFactor << endl;
return stream;
}
void PureCashFlow::operator>>(String &someString)const
{
someString.reserve(String::MaxString);
::sprintf(someString,"%12.2lf %9.7lf %9.2lf %9.2lf %9.2lf %9.2lf %9.2lf %9.2lf %9.2lf %12.10lf",
mBeginBal,
mSMM,
mMtgPay,
mNetIntPay,
mGrossIntPay,
mSchedPrinPay,
mPrepayment,
mTotPrin,
mCashFlow,
mFactor);
}
void PureCashFlow::itemStrings(Block<String> &strBlock)
{
String itemString;
strBlock.remove();
::sprintf(itemString,"%12.2lf",mBeginBal);
strBlock.insert(&itemString);
::sprintf(itemString,"%9.7lf",mSMM);
strBlock.insert(&itemString);
::sprintf(itemString,"%9.2lf",mMtgPay);
strBlock.insert(&itemString);
::sprintf(itemString,"%9.2lf",mNetIntPay);
strBlock.insert(&itemString);
::sprintf(itemString,"%9.2lf",mGrossIntPay);
strBlock.insert(&itemString);
::sprintf(itemString,"%9.2lf",mSchedPrinPay);
strBlock.insert(&itemString);
::sprintf(itemString,"%9.2lf",mPrepayment);
strBlock.insert(&itemString);
::sprintf(itemString,"%9.2lf",mTotPrin);
strBlock.insert(&itemString);
::sprintf(itemString,"%9.2lf",mCashFlow);
strBlock.insert(&itemString);
::sprintf(itemString,"%12.10lf",mFactor);
strBlock.insert(&itemString);
}

203
cashflow/PURECFLO.HPP Normal file
View File

@@ -0,0 +1,203 @@
#ifndef _PURECASHFLOW_HPP_
#define _PURECASHFLOW_HPP_
#include <strstrea.h>
#include <common/string.hpp>
#include <common/windows.hpp>
class PureCashFlow
{
public:
PureCashFlow(void);
PureCashFlow(double beginBal,double smm,double mtgPay,double netIntPay,double grossIntPay,double schedPrinPay,double prepayment,double totPrin,double cashFlow,double factor);
PureCashFlow(const PureCashFlow &somePureCashFlow);
~PureCashFlow();
void operator=(const PureCashFlow &somePureCashFlow);
WORD operator==(const PureCashFlow &somePureCashFlow)const;
strstream &operator>>(strstream &stream)const;
void operator>>(String &someString)const;
double beginBal(void)const;
void beginBal(double newBeginBal);
double smm(void)const;
void smm(double newSMM);
double mtgPay(void)const;
void mtgPay(double newMtgPay);
double netIntPay(void)const;
void netIntPay(double newIntPay);
double grossIntPay(void)const;
void grossIntPay(double newGrossIntPay);
double schedPrinPay(void)const;
void schedPrinPay(double newSchedPrinPay);
double prepayment(void)const;
void prepayment(double newPrepayment);
double totPrin(void)const;
void totPrin(double newTotPrin);
double cashFlow(void)const;
void cashFlow(double newCashFlow);
double factor(void)const;
void factor(double newFactor);
void itemStrings(Block<String> &strBlock);
private:
double mBeginBal;
double mSMM;
double mMtgPay;
double mNetIntPay;
double mGrossIntPay;
double mSchedPrinPay;
double mPrepayment;
double mTotPrin;
double mCashFlow;
double mFactor;
};
inline
PureCashFlow::PureCashFlow(void)
: mBeginBal(0.00), mSMM(0.00), mMtgPay(0.00), mNetIntPay(0.00), mGrossIntPay(0.00),
mSchedPrinPay(0.00), mPrepayment(0.00), mTotPrin(0.00), mCashFlow(0.00), mFactor(0.00)
{
}
inline
PureCashFlow::PureCashFlow(double beginBal,double smm,double mtgPay,
double netIntPay,double grossIntPay,double schedPrinPay,
double prepayment,double totPrin,double cashFlow,double factor)
: mBeginBal(beginBal), mSMM(smm), mMtgPay(mtgPay), mNetIntPay(netIntPay),
mGrossIntPay(grossIntPay), mSchedPrinPay(schedPrinPay), mPrepayment(prepayment),
mTotPrin(totPrin), mCashFlow(cashFlow), mFactor(factor)
{
}
inline
PureCashFlow::PureCashFlow(const PureCashFlow &somePureCashFlow)
: mBeginBal(somePureCashFlow.mBeginBal), mSMM(somePureCashFlow.mSMM),
mMtgPay(somePureCashFlow.mMtgPay), mNetIntPay(somePureCashFlow.mNetIntPay),
mGrossIntPay(somePureCashFlow.mGrossIntPay), mSchedPrinPay(somePureCashFlow.mSchedPrinPay),
mPrepayment(somePureCashFlow.mPrepayment), mTotPrin(somePureCashFlow.mTotPrin),
mCashFlow(somePureCashFlow.mCashFlow), mFactor(somePureCashFlow.mFactor)
{
}
inline
PureCashFlow::~PureCashFlow()
{
}
inline
double PureCashFlow::beginBal(void)const
{
return mBeginBal;
}
inline
void PureCashFlow::beginBal(double newBeginBal)
{
mBeginBal=newBeginBal;
}
inline
double PureCashFlow::smm(void)const
{
return mSMM;
}
inline
void PureCashFlow::smm(double newSMM)
{
mSMM=newSMM;
}
inline
double PureCashFlow::mtgPay(void)const
{
return mMtgPay;
}
inline
void PureCashFlow::mtgPay(double newMtgPay)
{
mMtgPay=newMtgPay;
}
inline
double PureCashFlow::netIntPay(void)const
{
return mNetIntPay;
}
inline
void PureCashFlow::netIntPay(double newNetIntPay)
{
mNetIntPay=newNetIntPay;
}
inline
double PureCashFlow::grossIntPay(void)const
{
return mGrossIntPay;
}
inline
void PureCashFlow::grossIntPay(double newGrossIntPay)
{
mGrossIntPay=newGrossIntPay;
}
inline
double PureCashFlow::schedPrinPay(void)const
{
return mSchedPrinPay;
}
inline
void PureCashFlow::schedPrinPay(double newSchedPrinPay)
{
mSchedPrinPay=newSchedPrinPay;
}
inline
double PureCashFlow::prepayment(void)const
{
return mPrepayment;
}
inline
void PureCashFlow::prepayment(double newPrepayment)
{
mPrepayment=newPrepayment;
}
inline
double PureCashFlow::totPrin(void)const
{
return mTotPrin;
}
inline
void PureCashFlow::totPrin(double newTotPrin)
{
mTotPrin=newTotPrin;
}
inline
double PureCashFlow::cashFlow(void)const
{
return mCashFlow;
}
inline
void PureCashFlow::cashFlow(double newCashFlow)
{
mCashFlow=newCashFlow;
}
inline
double PureCashFlow::factor(void)const
{
return mFactor;
}
inline
void PureCashFlow::factor(double newFactor)
{
mFactor=newFactor;
}
#endif

82
cashflow/SCRAPS.TXT Normal file
View File

@@ -0,0 +1,82 @@
// ThreadMessage threadMessage(ThreadMessage::TM_USER,FooStart,0L);
// if(!mhDisplay||!mlpLedDisplay)return;
// if(mCounter>999)mCounter=0;
// mlpLedDisplay->setNumber(mCounter++);
// postMessage(threadMessage);
#if 0
void CalcDlg::generateFlows(void)
{
Block<PureCashFlow> cashFlows;
PurePassThru passThru;
CashFlow cashFlow;
String trmString;
String prnString;
String cpnString;
size_t numFlows;
getText(CALC_TERM,trmString);
getText(CALC_PRINCIPAL,prnString);
getText(CALC_COUPON,cpnString);
if(trmString.isNull()||prnString.isNull()||cpnString.isNull()){::MessageBeep(0);return;}
passThru.issBal(::atof((LPSTR)prnString));
passThru.wac(::atof((LPSTR)cpnString));
passThru.coupon(::atof((LPSTR)cpnString));
passThru.wam(::atol((LPSTR)trmString));
passThru.origTerm(::atol((LPSTR)trmString));
passThru.psa(0.00);
if(mPrePay.amount())cashFlow.generateCashFlows(passThru,cashFlows,mPrePay);
else cashFlow.generateCashFlows(passThru,cashFlows);
numFlows=cashFlows.size();
mlpCalcSheet->clearData();
mlpCalcSheet->setCurrentCell(1,1);
CursorControl cursorControl;
cursorControl.waitCursor(TRUE);
for(short itemIndex=0;itemIndex<numFlows;itemIndex++)
{
Block<String> itemStrings;
cashFlows[itemIndex].itemStrings(itemStrings);
mlpCalcSheet->setCellData(itemIndex,IssBal,itemStrings[IssBal]);
mlpCalcSheet->setCellData(itemIndex,SMM,itemStrings[SMM]);
mlpCalcSheet->setCellData(itemIndex,MtgPay,itemStrings[MtgPay]);
mlpCalcSheet->setCellData(itemIndex,NetIntPay,itemStrings[NetIntPay]);
mlpCalcSheet->setCellData(itemIndex,GrossInt,itemStrings[GrossInt]);
mlpCalcSheet->setCellData(itemIndex,SchPrn,itemStrings[SchPrn]);
mlpCalcSheet->setCellData(itemIndex,Prepay,itemStrings[Prepay]);
mlpCalcSheet->setCellData(itemIndex,TotPrin,itemStrings[TotPrin]);
mlpCalcSheet->setCellData(itemIndex,Cashflow,itemStrings[Cashflow]);
mlpCalcSheet->setCellData(itemIndex,Factor,itemStrings[Factor]);
}
cursorControl.waitCursor(FALSE);
::SetFocus(mlpCalcSheet->getHandle());
}
#endif
void GraphWindow::showFlows(Block<PureCashFlow> &pureCashFlows,PureVector<int> &vectorInt)
{
// PureVector<int> vectorInt;
PureVector<int> scrnInt;
int widthAdjust(5);
int xPoint;
// vectorInt.size(pureCashFlows.size());
// for(int itemIndex=0;itemIndex<pureCashFlows.size();itemIndex++)vectorInt[itemIndex]=int(pureCashFlows[itemIndex].totPrin());
clamp(vectorInt);
// WORD sizeFactor((((float)width()/(float)widthAdjust)/(float)vectorInt.size())*100.00);
WORD sizeFactor(((((float)width()-20)/(float)widthAdjust)/(float)360.00)*100.00);
SpacialTransform resample;
resample.transform(vectorInt,scrnInt,sizeFactor);
for(itemIndex=0,xPoint=widthAdjust;itemIndex<scrnInt.size();itemIndex++,xPoint+=widthAdjust)
{
Vector3D outerPlane(Point3D(xPoint,scrnInt[itemIndex]+1,0),
Point3D(xPoint+widthAdjust,scrnInt[itemIndex]+1,0),
Point3D(xPoint+widthAdjust,0,0),
Point3D(xPoint,0,0));
Rect3D rect3D(outerPlane,20);
mGraphRects.insert(&rect3D);
}
invalidate();
}

24
cashflow/STDTMPL.CPP Normal file
View File

@@ -0,0 +1,24 @@
#ifndef _MSV_VER
#define _EXPAND_BLOCK_TEMPLATES_
#define _EXPAND_VECTOR_TEMPLATES_
#include <common/block.hpp>
#include <common/block.tpp>
#include <common/pvector.hpp>
#include <common/pvector.tpp>
#include <common/point.hpp>
#include <common/callback.hpp>
#include <common/callback.tpp>
#include <cashflow/purecflo.hpp>
#include <cashflow/calcdlg.hpp>
#include <cashflow/ppydlg.hpp>
#include <cashflow/calcthrd.hpp>
#include <thread/tcallbck.hpp>
#include <thread/tcallbck.tpp>
typedef Block<PureCashFlow> a;
typedef Callback<CalcDlg> b;
typedef Callback<PPYDlg> c;
typedef Block<CallbackPointer> d;
typedef PureVector<Point> e;
typedef ThreadCallback<CalcThread> f;
#endif

BIN
cashflow/TMP.RWS Normal file

Binary file not shown.

209
cashflow/cashflow.001 Normal file
View File

@@ -0,0 +1,209 @@
# Microsoft Developer Studio Project File - Name="cashflow" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 5.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=cashflow - Win32 Release
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "cashflow.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "cashflow.mak" CFG="cashflow - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "cashflow - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "cashflow - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "cashflow - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir ".\Release"
# PROP BASE Intermediate_Dir ".\Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir ".\Release"
# PROP Intermediate_Dir ".\Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir ".\Debug"
# PROP BASE Intermediate_Dir ".\Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir ".\msvcobj"
# PROP Intermediate_Dir ".\msvcobj"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /Zp1 /MTd /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__FLAT__" /D "STRICT" /Fp"\work\exe\msvc42.pch" /YX"windows.h" /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib uuid.lib /nologo /subsystem:windows /debug /machine:I386 /out:"..\exe\cashflow.exe"
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "cashflow - Win32 Release"
# Name "cashflow - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
# Begin Source File
SOURCE=.\Calcdlg.cpp
# End Source File
# Begin Source File
SOURCE=.\Calcthrd.cpp
# End Source File
# Begin Source File
SOURCE=.\Cashflow.cpp
# End Source File
# Begin Source File
SOURCE=.\Cashflow.h
# End Source File
# Begin Source File
SOURCE=.\Cashflow.rc
!IF "$(CFG)" == "cashflow - Win32 Release"
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\exe\fpsheet.lib
# End Source File
# Begin Source File
SOURCE=.\graph3d.cpp
# End Source File
# Begin Source File
SOURCE=.\graphwnd.cpp
# End Source File
# Begin Source File
SOURCE=.\Main.cpp
# End Source File
# Begin Source File
SOURCE=..\exe\mscommon.lib
# End Source File
# Begin Source File
SOURCE=..\exe\msengine.lib
# End Source File
# Begin Source File
SOURCE=..\exe\msthread.lib
# End Source File
# Begin Source File
SOURCE=.\Ppydlg.cpp
# End Source File
# Begin Source File
SOURCE=.\Purecflo.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
# Begin Source File
SOURCE=.\Calcdlg.hpp
# End Source File
# Begin Source File
SOURCE=.\Calcthrd.hpp
# End Source File
# Begin Source File
SOURCE=.\Cashdefs.hpp
# End Source File
# Begin Source File
SOURCE=.\Cashflow.hpp
# End Source File
# Begin Source File
SOURCE=.\Clrrect.hpp
# End Source File
# Begin Source File
SOURCE=.\Graph3d.hpp
# End Source File
# Begin Source File
SOURCE=.\Graphwnd.hpp
# End Source File
# Begin Source File
SOURCE=.\Passthru.hpp
# End Source File
# Begin Source File
SOURCE=.\Ppydlg.hpp
# End Source File
# Begin Source File
SOURCE=.\Prepay.hpp
# End Source File
# Begin Source File
SOURCE=.\Purecflo.hpp
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

199
cashflow/cashflow.dsp Normal file
View File

@@ -0,0 +1,199 @@
# Microsoft Developer Studio Project File - Name="cashflow" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=cashflow - Win32 Release
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "cashflow.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "cashflow.mak" CFG="cashflow - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "cashflow - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "cashflow - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "cashflow - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir ".\Release"
# PROP BASE Intermediate_Dir ".\Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir ".\Release"
# PROP Intermediate_Dir ".\Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
!ELSEIF "$(CFG)" == "cashflow - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir ".\Debug"
# PROP BASE Intermediate_Dir ".\Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir ".\msvcobj"
# PROP Intermediate_Dir ".\msvcobj"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /MTd /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__FLAT__" /D "STRICT" /Fp"\work\exe\msvc42.pch" /YX"windows.h" /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib uuid.lib /nologo /subsystem:windows /debug /machine:I386 /out:"..\exe\cashflow.exe"
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "cashflow - Win32 Release"
# Name "cashflow - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
# Begin Source File
SOURCE=.\Calcdlg.cpp
# End Source File
# Begin Source File
SOURCE=.\Calcthrd.cpp
# End Source File
# Begin Source File
SOURCE=.\Cashflow.cpp
# End Source File
# Begin Source File
SOURCE=.\Cashflow.h
# End Source File
# Begin Source File
SOURCE=.\Cashflow.rc
# End Source File
# Begin Source File
SOURCE=.\graph3d.cpp
# End Source File
# Begin Source File
SOURCE=.\graphwnd.cpp
# End Source File
# Begin Source File
SOURCE=.\irr.cpp
# End Source File
# Begin Source File
SOURCE=.\Main.cpp
# End Source File
# Begin Source File
SOURCE=.\Ppydlg.cpp
# End Source File
# Begin Source File
SOURCE=.\Purecflo.cpp
# End Source File
# Begin Source File
SOURCE=..\exe\msengine.lib
# End Source File
# Begin Source File
SOURCE=..\exe\msthread.lib
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
# Begin Source File
SOURCE=.\Calcdlg.hpp
# End Source File
# Begin Source File
SOURCE=.\Calcthrd.hpp
# End Source File
# Begin Source File
SOURCE=.\Cashdefs.hpp
# End Source File
# Begin Source File
SOURCE=.\Cashflow.hpp
# End Source File
# Begin Source File
SOURCE=.\Clrrect.hpp
# End Source File
# Begin Source File
SOURCE=.\Graph3d.hpp
# End Source File
# Begin Source File
SOURCE=.\Graphwnd.hpp
# End Source File
# Begin Source File
SOURCE=.\Passthru.hpp
# End Source File
# Begin Source File
SOURCE=.\Ppydlg.hpp
# End Source File
# Begin Source File
SOURCE=.\Prepay.hpp
# End Source File
# Begin Source File
SOURCE=.\Purecflo.hpp
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

104
cashflow/cflowlib.dsp Normal file
View File

@@ -0,0 +1,104 @@
# Microsoft Developer Studio Project File - Name="cflowlib" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=cflowlib - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "cflowlib.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "cflowlib.mak" CFG="cflowlib - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "cflowlib - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "cflowlib - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "cflowlib - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "cflowlib - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "msvcobj"
# PROP Intermediate_Dir "msvcobj"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W1 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "STRICT" /D "__FLAT__" /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"..\exe\cflowlib.lib"
!ENDIF
# Begin Target
# Name "cflowlib - Win32 Release"
# Name "cflowlib - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\CASHFLOW.CPP
# End Source File
# Begin Source File
SOURCE=.\irr.cpp
# End Source File
# Begin Source File
SOURCE=.\PURECFLO.CPP
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# End Target
# End Project

29
cashflow/cflowlib.dsw Normal file
View File

@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "cflowlib"=.\cflowlib.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

BIN
cashflow/cflowlib.opt Normal file

Binary file not shown.

16
cashflow/cflowlib.plg Normal file
View File

@@ -0,0 +1,16 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: cflowlib - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
<h3>Results</h3>
cflowlib.lib - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

89
cashflow/irr.cpp Normal file
View File

@@ -0,0 +1,89 @@
#include <cashflow/irr.hpp>
double IRR::IRR_ERROR=-1E30;
int IRR::IRR_MAX_ITERATIONS=50;
double IRR::IRR_ACCURACY=1.0E-5;
double IRR::irr(Array<double> &cashflows)
{
double x1=0.00;
double x2=.20;
double dx=0.00;
double f1;
double f2;
double f;
double rtb;
double xmid;
double fmid;
int index;
// create initial bracket with root somewhere between bot,top
f1=pv(cashflows,x1);
f2=pv(cashflows,x2);
for(index=0;index<IRR_MAX_ITERATIONS;index++)
{
if((f1*f2)<0.00)break;
if(fabs(f1)<fabs(f2))
{
f1=pv(cashflows,x1+=1.6*(x1-x2));
}
else
{
f2=pv(cashflows,x2+=1.6*(x2-x1));
}
}
if(f2*f1>0.00)return IRR_ERROR;
f=pv(cashflows,x1);
if(f<0.00)
{
rtb=x1;
dx=x2-x1;
}
else
{
rtb=x2;
dx=x1-x2;
}
for(index=0;index<IRR_MAX_ITERATIONS;index++)
{
dx*=.50;
xmid=rtb+dx;
fmid=pv(cashflows,xmid);
if(fmid<=0.00)rtb=xmid;
if((fabs(fmid)<IRR_ACCURACY)||(fabs(dx)<IRR_ACCURACY))
{
return xmid;
}
}
return IRR_ERROR;
}
double IRR::npv(Array<double> &cashflows,double rate)
{
double npv=0.00;
for(int index=0;index<cashflows.size();index++)
{
npv+=cashflows[index]*pow(1+rate,index); // exp(-rate*(index+1)));
}
return npv;
}
double IRR::pv(Array<double> &cashflows,double rate)
{
double pv=0.00;
for(int index=0;index<cashflows.size();index++)
{
pv+=(cashflows[index]*exp(-rate*(index+1)));
}
return pv;
}
double IRR::pvD(Array<double> &cashflows,double rate)
{
double pv=0.00;
for(int index=0;index<cashflows.size();index++)
{
pv+=cashflows[index]/pow(1+rate,index+1);
}
return pv;
}