"""LoRA dimension/count teaching example; no ML package, training or API."""
import json
A=[[1,0,2],[0,1,-1]]
B=[[1,2],[0,1],[2,0],[1,-1]]
if __name__=="__main__":
    delta=[[sum(B[i][k]*A[k][j] for k in range(2)) for j in range(3)] for i in range(4)]
    assert delta==[[1,2,0],[0,1,-1],[2,0,4],[1,-1,3]]
    m=n=4096;r=8
    full=m*n; adapter=r*n+m*r
    assert full==16777216 and adapter==65536 and full/adapter==256
    print(json.dumps({"toy_delta":delta,"one_matrix_full_parameters":full,"adapter_trainable_parameters":adapter,"count_ratio":full/adapter},indent=2))
