Se stai letteralmente traducendo il codice C ++ che implementa l'algoritmo, allora stai creando un'opera derivata di apt
e devi anche concedere in licenza il tuo codice sotto GPL.
D'altro canto, se si implementa l'algoritmo in base a una descrizione testuale / matematica dell'algoritmo senza considerare l'implementazione C ++, il proprio codice è non un lavoro derivato e si è liberi di scegli la tua licenza come desideri.
Se non traduci il codice C ++, ma lo guardi, allora sei in un'area grigia legale. In tal caso, non è del tutto chiaro se il tuo codice sarà considerato un lavoro derivato o un'implementazione indipendente dell'algoritmo. Per essere al sicuro, puoi considerarlo come un'opera derivata.
La differenza esiste perché gli algoritmi stessi non sono soggetti al copyright, ma le loro implementazioni sono.