change implement
add hpgcalgorithm
add some algorithm
add hpgc algorithm
change hpgc algorithm
add some interface