algo smc principal