{"id":18337508,"url":"https://github.com/joaoantoniocardoso/c_array_macros","last_synced_at":"2025-10-06T01:45:15.879Z","repository":{"id":96620748,"uuid":"192850950","full_name":"joaoantoniocardoso/c_array_macros","owner":"joaoantoniocardoso","description":"Basic array macros for C","archived":false,"fork":false,"pushed_at":"2020-09-03T03:04:13.000Z","size":24,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T20:17:43.813Z","etag":null,"topics":["array-macros","array-manipulations","array2d","array3d","bare-metal","c","matrizes"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joaoantoniocardoso.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-20T04:54:39.000Z","updated_at":"2022-04-02T05:19:51.000Z","dependencies_parsed_at":"2023-03-13T16:27:11.280Z","dependency_job_id":null,"html_url":"https://github.com/joaoantoniocardoso/c_array_macros","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joaoantoniocardoso/c_array_macros","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaoantoniocardoso%2Fc_array_macros","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaoantoniocardoso%2Fc_array_macros/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaoantoniocardoso%2Fc_array_macros/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaoantoniocardoso%2Fc_array_macros/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joaoantoniocardoso","download_url":"https://codeload.github.com/joaoantoniocardoso/c_array_macros/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joaoantoniocardoso%2Fc_array_macros/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278547876,"owners_count":26004773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["array-macros","array-manipulations","array2d","array3d","bare-metal","c","matrizes"],"created_at":"2024-11-05T20:11:26.244Z","updated_at":"2025-10-06T01:45:15.863Z","avatar_url":"https://github.com/joaoantoniocardoso.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# c_array_macros\n\nEste repositório contem um conjunto de macros em C para as operações fundamentais com vetores e matrizes.\n\n# Sobre\n\nARRAY2D aqui são MATRIZES:  \n  `x[k][i][j]`, onde:  \n    **i** é a linha  \n    **j** é a coluna  \n\nARRAYND aqui são MATRIZES NO TEMPO:  \n  Interpretar como um vetor(tempo) de matrizes(x,y):  \n    `x[k][i][j]`, onde:  \n      **i** é a linha  \n      **j** é a coluna  \n      **k** é a amostra no tempo  \n\n## Exemplo de uso\n\nNo arquivo *array2d_example.c* é realizada a operação matricial: E = A*B + C*d:\n``` \n#include \u003cstdio.h\u003e\n#include \"array_macros.h\"\n\n// Selects REVERSE or DIRECT order for processing loops:\n#define SUM ARRAY2D_SUM_REVERSE\n#define MUL ARRAY2D_MUL_REVERSE\n#define GAIN ARRAY2D_GAIN_REVERSE\n\nfloat A[2][3] = {\n    {0, 1, 2},\n    {3, 4, 5}\n};\n\nfloat B[3][2] = {\n    {0, 1},\n    {2, 3},\n    {4, 5}\n};\n\nfloat C[2][2] = {\n    {10, 12}, \n    {16, 11}\n};\n\nfloat d = 2;\n\nfloat E[2][2];\n\nint main(void)\n{\n    // Initialize local indexes (i,j,h) for array2d macros\n    ARRAY2D_INDEX_INIT();\n\n    // Temporary arrays\n    float T1[2][2], T2[2][2];\n\n    // T1 = A*B :\n    MUL(A, B, T1);\n\n    // T2 = C*d :\n    GAIN(C, d, T2);\n\n    // E = A*B + C*d = T1 * T2 :\n    SUM(T1, T2, E);\n\n    // PRINT\n    printf(\"RESULT:\\n\");\n    for(i = 0; i \u003c ARRAY2D_ROWS(E); i++){\n        for(j = 0; j \u003c ARRAY2D_COLS(E); j++){\n            printf(\"\\tE[%d][%d] = %f\\n\", i, j, \n                E[i][j]);\n        }\n    }\n\n    return 0;\n}\n\n``` \n\nPara mais detalhes, o arquivo *array_macros_test.c* contém exemplos de utilização específicos de cada macro definida em *array_macros.h*, enquanto o arquivo *array_macros_development_test.c* realiza os mesmos tests SEM a utilização dos macros, utilizado para uma escrita mais fluida das macros durante o desenvolvimento.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoaoantoniocardoso%2Fc_array_macros","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoaoantoniocardoso%2Fc_array_macros","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoaoantoniocardoso%2Fc_array_macros/lists"}