asc26 amss-ncku initialized
This commit is contained in:
76
AMSS_NCKU_source/horizon_sequence.C
Normal file
76
AMSS_NCKU_source/horizon_sequence.C
Normal file
@@ -0,0 +1,76 @@
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "stdc.h"
|
||||
#include "util.h"
|
||||
|
||||
#include "horizon_sequence.h"
|
||||
|
||||
namespace AHFinderDirect
|
||||
{
|
||||
|
||||
horizon_sequence::horizon_sequence(int N_horizons_in)
|
||||
: N_horizons_(N_horizons_in),
|
||||
my_N_horizons_(0), // sequence starts out empty
|
||||
posn_(-1),
|
||||
my_hn_(new int[N_horizons_in])
|
||||
{
|
||||
}
|
||||
|
||||
horizon_sequence::~horizon_sequence()
|
||||
{
|
||||
delete[] my_hn_;
|
||||
}
|
||||
//
|
||||
// This function appends hn to the sequence. It returns the new value
|
||||
// of my_N_horizons().
|
||||
//
|
||||
int horizon_sequence::append_hn(int hn)
|
||||
{
|
||||
assert(hn > 0); // can only append genuine horizons
|
||||
assert(my_N_horizons_ < N_horizons_); // make sure there's space for it
|
||||
my_hn_[my_N_horizons_++] = hn;
|
||||
posn_ = 0;
|
||||
return my_N_horizons_;
|
||||
}
|
||||
|
||||
//******************************************************************************
|
||||
|
||||
//
|
||||
// This function computes the internal position immediately following
|
||||
// a given internal position in the sequence.
|
||||
//
|
||||
// Arguments:
|
||||
// p = (in) The current internal position, with posn_ semantics
|
||||
//
|
||||
// Results:
|
||||
// This function returns the next internal position after p.
|
||||
//
|
||||
int horizon_sequence::next_posn(int pos)
|
||||
const
|
||||
{
|
||||
return (pos < 0) ? pos - 1
|
||||
: (pos + 1 < my_N_horizons_) ? pos + 1
|
||||
: -1;
|
||||
}
|
||||
|
||||
//******************************************************************************
|
||||
|
||||
//
|
||||
// This function determines whether or not a given hn is genuine.
|
||||
//
|
||||
bool horizon_sequence::is_hn_genuine(int hn)
|
||||
const
|
||||
{
|
||||
for (int pos = 0; pos < my_N_horizons_; ++pos)
|
||||
{
|
||||
if (my_hn_[pos] == hn)
|
||||
then return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//******************************************************************************
|
||||
|
||||
} // namespace AHFinderDirect
|
||||
Reference in New Issue
Block a user