-
Notifications
You must be signed in to change notification settings - Fork 0
[wip] full pagerank #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- graph is directed - edges have no numbers - "call" edges have been removed - all input was deleted from "data" folder and now it's hardcoded Signed-off-by: Rodion Suvorov <[email protected]>
This patch brings following changes: 1) At this moment we didn't take any input, so all matrices are hardcoded 2) All vectors now have GrB_Vector type 3) For every edge and veretex type have been created corresponding GrB types 4) Add some go-style "err != nil"-driven-development Signed-off-by: Rodion Suvorov <[email protected]>
This patch brings user filtration logic: 1) Build filter via vector assign and kronecker product 2) Apply filter to matrix via assigning mask Signed-off-by: Rodion Suvorov <[email protected]>
Signed-off-by: Rodion Suvorov <[email protected]>
Signed-off-by: Rodion Suvorov <[email protected]>
Signed-off-by: Rodion Suvorov <[email protected]>
|
Hello, Rodion. Please, assign me as a reviewer for this PR. |
done |
src/main.c
Outdated
| return info; | ||
| } | ||
|
|
||
| int main() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: consider using getopt() (https://www.opennet.ru/man.shtml?topic=getopt&category=3&russian=0) or so. It might appear cooler if the example appear as a complete CLI utility tool.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
later 🙃
| void check_user_age(bool *z, const User *x, GrB_Index _i, GrB_Index _j, const uint8_t *y) // EdgeOwns | ||
| { | ||
| { | ||
| *z = (x->age > *y); | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: assertions/default values are usually handy there. You know it is ok not to pass an argument to IndexUnaryOps and y is completely ok to be null.
| GrB_IndexUnaryOp user_age; | ||
| TRY(GrB_IndexUnaryOp_new(&user_age, (GxB_index_unary_function)&check_user_age, GrB_BOOL, user, GrB_UINT8)); | ||
| uint8_t age = 30; | ||
| TRY(GrB_Vector_apply_IndexOp_UDT(v, NULL, NULL, user_age, users, &age, NULL)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Везде честный select. Не забыть, что операции тоже поменяются.
35ce7b6 to
11e18af
Compare
|
11e18af to
a179b2f
Compare
a179b2f to
efddbba
Compare
1) Remove redundant check of type of the graph (always directed) 2) Add mask of subgraph Signed-off-by: Rodion Suvorov <[email protected]>
todo