from math import sqrt, ceil import sys from project.countries import world_excluded_countries_list from project.signed_networks.definitions import POSITIVE_LINK, NO_LINK from project.signed_networks.structural_balance.metrics.vertex import positive_edge_count, negative_edge_count from project.util import memoize, std_dev DEFAULT_COUNTRIES_LIST = world_excluded_countries_list() def _add_to_slope_map(slope_map, key, new_list_item): if key not in slope_map: slope_map[key] = [] prev_entry = slope_map[key] prev_entry.append(new_list_item) def _compute_slope(p1, p2): if p1[0] - p2[0] == 0: return sys.float_info.max return (p1[1] - p2[1]) / (p1[0] - p2[0]) def _distance_from_origin(point): return sqrt(point[0] * point[0] + point[1] * point[1]) def detect_factions_from_co_movements(positives_and_negatives, window_size, year): countries_list = positives_and_negatives[year].keys() movements_per_country = {} for current_year in range(year - window_size + 1, year + 1): previous_year = current_year - 1 for C in countries_list:
def number_of_traids(dense_cube_matrix): total = 0 for C in countries.world_excluded_countries_list(): total += number_of_traids_for_a_country(dense_cube_matrix, C) return total / 6.0