prep /nologo /om /ft /SF CQuantumDoc::SimThreadStart "D:\users\jon\quantum\Debug\quantum" profile /nologo /nc "D:\users\jon\quantum\Debug\quantum" prep /nologo /m "D:\users\jon\quantum\Debug\quantum" plist /nologo "D:\users\jon\quantum\Debug\quantum" Profile: Function timing, sorted by time Date: Thu May 15 20:56:51 1997 Program Statistics ------------------ Command line at 1997 May 15 20:54: "D:\users\jon\quantum\Debug\quantum" Start function: CQuantumDoc::SimThreadStart(void *) Total time: 8039.275 millisecond Time outside of functions: 4.862 millisecond Call depth: 14 Total functions: 423 Total hits: 4051526 Function coverage: 28.1% Overhead Calculated 7 Overhead Average 7 Module Statistics for quantum.exe --------------------------------- Time in module: 8034.413 millisecond Percent of time in module: 100.0% Functions in module: 423 Hits in module: 4051526 Module function coverage: 28.1% Func Func+Child Hit Time % Time % Count Function --------------------------------------------------------- 1734.410 21.6 4447.244 55.4 49152 CComplexMatrix::Multiply(class CComplexVector &,class CComplexVector const &) (matrix.obj) 1118.267 13.9 6957.051 86.6 49152 CMetaverse::CalculateGate(class CGate const *,class CComplexVector &,class CComplexVector &,class CComplexVector &,int) (metaverse.obj) 1001.161 12.5 1001.161 12.5 1049179 CComplexVector::Length(void) (quantumdoc.obj) 803.237 10.0 803.237 10.0 688141 CComplexVector::operator[](int) (gate.obj) 459.398 5.7 459.398 5.7 409604 CComplexVector::operator[](int) (matrix.obj) 404.884 5.0 673.277 8.4 196608 operator*(class CComplex const &,class CComplex const &) (matrix.obj) 311.739 3.9 311.739 3.9 18768 CQList::GrowTo(int) (gategroup.obj) 281.323 3.5 281.323 3.5 204934 CComplex::CComplex(double,double) (matrix.obj) 209.075 2.6 209.075 2.6 196704 CInputOutputGate::OutputPins(void) (gate.obj) 192.699 2.4 192.699 2.4 11114 CQList::~CQList(void) (gategroup.obj) 186.323 2.3 186.323 2.3 197438 CInputOutputGate::InputPins(void) (gate.obj) 168.332 2.1 168.332 2.1 196608 CComplex::operator+=(class CComplex const &) (matrix.obj) 135.526 1.7 135.526 1.7 102497 CComplex::operator=(double const &) (matrix.obj) 131.848 1.6 131.848 1.6 196608 CComplexMatrix::operator[](int) (matrix.obj) 113.555 1.4 113.555 1.4 98382 CPin::BitNumber(void) (gate.obj) 88.072 1.1 4535.316 56.4 49152 CInputOutputGate::CalcOutput(class CComplexVector &,class CComplexVector const *) (gate.obj) 75.058 0.9 75.058 0.9 49152 CComplexMatrix::Columns(void) (gate.obj) 71.748 0.9 7518.944 93.6 2 CMetaverse::SimulateSubGroup(class CComplexVector &,class CCircuit *,class CGateGroup const &,int &) (metaverse.obj) 53.220 0.7 123.864 1.5 17376 CQList::Copy(class CQList const &) (gategroup.obj) 50.755 0.6 50.755 0.6 49176 CInputOutputGate::OutputPin(int) (gate.obj) 48.878 0.6 48.878 0.6 49611 CQList::Length(void) (gategroup.obj) 45.614 0.6 369.982 4.6 10166 CQList::CQList(class CQList const &) (gategroup.obj) 45.426 0.6 45.426 0.6 31977 CQList::operator[](int) (gategroup.obj) 42.729 0.5 76.744 1.0 2 CMetaverse::DumpAmplitdues(class CComplexVector const &,int) (metaverse.obj) 38.977 0.5 38.977 0.5 49525 CInputOutputGate::InputPin(int) (gate.obj) 36.330 0.5 406.312 5.1 5083 CGateGroup::CGateGroup(class CGateGroup const &) (gategroup.obj) 18.979 0.2 211.678 2.6 5557 CGateGroup::~CGateGroup(void) (gategroup.obj) 18.463 0.2 90.195 1.1 7210 CQList::operator=(class CQList const &) (gategroup.obj) 16.943 0.2 289.424 3.6 3340 CQList::operator[](int) (metaverse.obj) 16.205 0.2 38.663 0.5 1849 operator<(class CGateGroup const &,class CGateGroup const &) (gategroup.obj) 11.201 0.1 26.496 0.3 1849 operator==(class CQList const &,class CQList const &) (gategroup.obj) 11.045 0.1 101.240 1.3 3605 CGateGroup::operator=(class CGateGroup const &) (gategroup.obj) 10.433 0.1 10.433 0.1 3540 CQList::Find(class CGate const * const &) (gategroup.obj) 9.614 0.1 9.614 0.1 16386 CComplex::MagSquared(void) (matrix.obj) 8.935 0.1 10.756 0.1 3337 CGateGroup::Gate(int) (metaverse.obj) 7.721 0.1 20.642 0.3 8312 CComplex::`default constructor closure'(void) (matrix.obj) 7.370 0.1 10.626 0.1 2808 CGateGroup::DependsOn(int) (gategroup.obj) 5.948 0.1 9.129 0.1 4549 CGateGroup::NoDependsOn(void) (gategroup.obj) 5.684 0.1 338.419 4.2 7 CQList::Sort(void) (gategroup.obj) 4.998 0.1 33.198 0.4 123 CQList::Find(class CGateGroup const &) (gategroup.obj) 4.862 0.1 7.089 0.1 49 CComplexVector::Zero(void) (matrix.obj) 2.603 0.0 23.245 0.3 62 `vector constructor iterator'(void *,unsigned int,int,void (*)(void *)) (gate.obj) 2.273 0.0 15.465 0.2 13 CComplexVector::Copy(class CComplexVector const &) (matrix.obj) 2.087 0.0 19.296 0.2 49 CComplexVector::SetLength(int,int) (matrix.obj) 2.068 0.0 8034.002 100.0 1 CQuantumDoc::QuantumWorkerThread(struct CQuantumDoc::Simdata *) (quantumdoc.obj) 1.780 0.0 1.780 0.0 3828 CQList::Length(void) (metaverse.obj) 1.704 0.0 28.199 0.4 1849 operator==(class CGateGroup const &,class CGateGroup const &) (gategroup.obj) 1.566 0.0 7.460 0.1 444 CGateGroup::ComputeTransitiveEnclosure(class CGate *) (gategroup.obj) 1.341 0.0 40.545 0.5 948 CQList::CQList(int) (gategroup.obj) 0.845 0.0 0.845 0.0 112 CComplexVector::Reset(void) (matrix.obj) 0.797 0.0 41.342 0.5 474 CGateGroup::CGateGroup(void) (gategroup.obj) 0.753 0.0 21.668 0.3 130 CQList::GrowTo(int) (gategroup.obj) 0.559 0.0 0.559 0.0 242 CQList::Sort(void) (gategroup.obj) 0.551 0.0 0.551 0.0 4 operator<<(class ostream &,class CComplex const &) (matrix.obj) 0.542 0.0 8.463 0.1 444 CQList::operator+=(class CGate const * const &) (gategroup.obj) 0.441 0.0 0.770 0.0 417 CCircuit::NumberOfGates(void) (quantumdoc.obj) 0.417 0.0 0.717 0.0 444 CQList::Append(class CGate const * const &) (gategroup.obj) 0.411 0.0 8034.413 100.0 1 CQuantumDoc::SimThreadStart(void *) (quantumdoc.obj) 0.391 0.0 0.391 0.0 300 CPin::ParentGate(void) (gate.obj) 0.388 0.0 1.074 0.0 1 CCircuit::IsValidQuantumCircuit(void) (circuit.obj) 0.373 0.0 0.373 0.0 372 CPin::ConnectedTo(void) (gate.obj) 0.370 0.0 15.672 0.2 7 CGateGroup::`vector deleting destructor'(unsigned int) (gategroup.obj) 0.329 0.0 0.329 0.0 417 CQList::Length(void) (quantumdoc.obj) 0.329 0.0 0.329 0.0 456 CQList::operator[](int) (metaverse.obj) 0.325 0.0 8031.926 100.0 1 CMetaverse::StartSimulation(class CCircuit *,int,int,void (*)(int,void *),void *) (metaverse.obj) 0.273 0.0 126.060 1.6 2 CMetaverse::PartitionGroup(class CGateGroup,int,int,class CQList &) (metaverse.obj) 0.261 0.0 0.795 0.0 216 CCircuit::Gate(int) (metaverse.obj) 0.249 0.0 15.103 0.2 192 CGateGroup::AddGate(class CGate *) (gategroup.obj) 0.245 0.0 263.970 3.3 1 CCircuit::OrderGates(void) (circuit.obj) 0.225 0.0 153.428 1.9 4 CGateGroup::ExpandGatesToSeperateGroups(class CQList &) (gategroup.obj) 0.215 0.0 2.910 0.0 123 CQList::Append(class CGateGroup const &) (gategroup.obj) 0.194 0.0 36.301 0.5 123 CQList::operator+=(class CGateGroup const &) (gategroup.obj) 0.182 0.0 0.774 0.0 1 CMetaverse::VerifyOutputGateConnections(class CCircuit *) (metaverse.obj) 0.176 0.0 0.735 0.0 121 CGateGroup::Sort(void) (gategroup.obj) 0.175 0.0 8031.595 100.0 1 CMetaverse::Simulate(class CCircuit *,class CComplexVector &) (metaverse.obj) 0.173 0.0 0.173 0.0 28 CQList::GrowTo(int) (metaverse.obj) 0.166 0.0 0.166 0.0 48 CQList::Find(class CGate * const &) (circuit.obj) 0.148 0.0 0.148 0.0 192 CGate::InputPins(void) (gate.obj) 0.128 0.0 0.226 0.0 2 CQuantumDoc::SimCallback(int,void *) (quantumdoc.obj) 0.124 0.0 1.053 0.0 1 CMetaverse::SetInitialAmplitudes(class CComplexVector &,class CCircuit const *) (metaverse.obj) 0.116 0.0 0.205 0.0 72 CPin::IsConnected(void) (gate.obj) 0.098 0.0 0.098 0.0 2 CSimProgress::SetPos(int,int) (quantumdoc.obj) 0.090 0.0 7654.873 95.3 1 CMetaverse::SimulateCircuitEfficiently(class CComplexVector &,class CCircuit *) (metaverse.obj) 0.090 0.0 0.090 0.0 49 CQList::Find(int const &) (metaverse.obj) 0.074 0.0 0.202 0.0 49 CQList::operator+=(int const &) (metaverse.obj) 0.070 0.0 0.313 0.0 48 CQList::operator+=(class CGate * const &) (circuit.obj) 0.068 0.0 0.665 0.0 4 CComplexVector::`vector deleting destructor'(unsigned int) (matrix.obj) 0.064 0.0 0.064 0.0 96 CSinkGate::InputPins(void) (gate.obj) 0.060 0.0 0.060 0.0 3 CQList::~CQList(void) (metaverse.obj) 0.056 0.0 0.056 0.0 12 operator==(class CComplex const &,class CComplex const &) (matrix.obj) 0.054 0.0 0.828 0.0 60 CComplexVector::~CComplexVector(void) (matrix.obj) 0.046 0.0 0.077 0.0 48 CQList::Append(class CGate * const &) (circuit.obj) 0.041 0.0 21.560 0.3 7 CQList::CQList(int) (metaverse.obj) 0.039 0.0 0.039 0.0 48 CComplexVector::CComplexVector(void) (matrix.obj) 0.031 0.0 0.031 0.0 48 CQList::GrowTo(int) (circuit.obj) 0.030 0.0 0.030 0.0 48 CSourceGate::OutputPins(void) (gate.obj) 0.027 0.0 15.699 0.2 7 CQList::~CQList(void) (metaverse.obj) 0.025 0.0 0.025 0.0 36 CSinkGate::InputPin(int) (gate.obj) 0.024 0.0 0.024 0.0 36 CGate::OutputPins(void) (gate.obj) 0.023 0.0 0.039 0.0 25 CQList::Append(int const &) (metaverse.obj) 0.023 0.0 0.417 0.0 12 CStaticSource::CalcOutput(class CComplexVector const *) (gate.obj) 0.018 0.0 0.018 0.0 46 CQList::Length(void) (metaverse.obj) 0.015 0.0 0.015 0.0 12 CCircuit::NumberOfInputBits(void) (quantumdoc.obj) 0.014 0.0 7589.808 94.5 1 CMetaverse::SimulateGroup(class CComplexVector &,class CCircuit *,class CGateGroup const &,int &) (metaverse.obj) 0.013 0.0 0.013 0.0 17 CSourceGate::OutputPin(int) (gate.obj) 0.007 0.0 1.089 0.0 1 CMetaverse::VerifyCircuitSize(class CCircuit *) (metaverse.obj) 0.007 0.0 0.007 0.0 2 ToBinary(char *,int,int) (metaverse.obj) 0.006 0.0 0.395 0.0 12 CComplexVector::CComplexVector(class CComplexVector const &) (matrix.obj) 0.006 0.0 0.163 0.0 3 CQList::CQList(int) (metaverse.obj) 0.003 0.0 0.006 0.0 1 CMetaverse::FreeAmplitudes(void) (metaverse.obj) 0.003 0.0 0.003 0.0 3 CCircuit::NumberOfOutputBits(void) (metaverse.obj) 0.002 0.0 0.002 0.0 1 CCircuit::GetCircuit(void) (quantumdoc.obj) 0.002 0.0 0.002 0.0 1 CCircuit::GetName(void) (quantumdoc.obj) 0.002 0.0 0.002 0.0 6 CQList::Empty(void) (gategroup.obj) 0.001 0.0 0.004 0.0 1 CCircuit::NumberOfProcessingGates(void) (quantumdoc.obj) 0.001 0.0 0.001 0.0 1 CCircuit::Ordered(void) (metaverse.obj) 0.001 0.0 0.001 0.0 2 CComplex::operator+=(double const &) (matrix.obj) 0.001 0.0 15.078 0.2 1 CComplexVector::operator=(class CComplexVector const &) (matrix.obj) 0.001 0.0 0.001 0.0 1 CQList::Empty(void) (circuit.obj)