The public key is calculated by taking the generator point G and performing elliptic curve point multiplication on it with the private key. Given private key
d and generator
G, you do
d * G. The process for elliptic curve point multiplication is detailed on
wikipedia. The curve parameters are the ones for the secp256k1 curve which are defined here (section 2.4.1):
http://www.secg.org/sec2-v2.pdf