Skip to content

Instantly share code, notes, and snippets.

View ericphanson's full-sized avatar

Eric Hanson ericphanson

View GitHub Profile
@ericphanson
ericphanson / simdiag.jl
Last active January 19, 2019 19:24
Simultaneous diagonalization for complex commuting normal matrices
# Adapted from
# https://uk.mathworks.com/matlabcentral/fileexchange/46794-simdiag-m
# which has the following license:
# Copyright (c) 2009, Christian B. Mendl
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice, this
using Mosek
using SCS
import DSP: conv
using Convex
conv(x::AbstractVector, y::AbstractVector) = DSP.conv(x,y)
conv(x::Variable, y::AbstractVector) = Convex.conv(x,y)
conv(x::AbstractVector, y::Variable) = Convex.conv(x,y)
using Random
using SparseArrays
@ericphanson
ericphanson / diff_eigmin.md
Created August 3, 2019 12:47
Various attempts to differentiate through `eigmin` in Julia

Attempts to differentiate eigmin

Julia 1.1, with Zygote master

Version information:

julia> Pkg.status()
    Status `~/Dropbox (Personal)/Research/Code/julia-projects/DiffEvals/ZygoteMaster/Project.toml`
  [ec485272] ArnoldiMethod v0.0.4
  [14197337] GenericLinearAlgebra v0.1.0
@ericphanson
ericphanson / convert_tests.jl
Created September 9, 2019 17:23
Convex.jl ProblemDepot test conversion
function convert_test(file, prefix)
# handle start and end:
# delete @testset for... and final "end"
file_contents = read(file, String)
file_contents = replace(file_contents, r"\h*@testset.*for\ssolver.*\n" => "")
file_contents = lstrip(file_contents)
file_contents = file_contents[1:prevind(file_contents, first(findlast("end", file_contents)))]
file_contents = replace(file_contents, r"\n\h\h\h\h(.*)" => SubstitutionString("\n\\1"))
# handle special cases
@ericphanson
ericphanson / warmstart_error.jl
Created October 27, 2019 21:32
Problem trying to warmstart
using SCS
using MathOptInterface # MathOptInterface v0.9.6
const MOI = MathOptInterface
const MOIU = MOI.Utilities
const MOIB = MOI.Bridges
function make_model(vector)
optimizer = SCS.Optimizer(verbose=false)
T = Float64
model = MOIB.full_bridge_optimizer(
@ericphanson
ericphanson / IntervalSpecialFunctions.jl
Last active December 11, 2019 00:09
IntervalOptimisation problem benchmark
# This file contains code taken from https://github.com/JuliaIntervals/IntervalSpecialFunctions.jl
# which is available under the following MIT license:
# > Copyright (c) 2018: David Sanders.
# >
# > Permission is hereby granted, free of charge, to any person obtaining a copy
# > of this software and associated documentation files (the "Software"), to deal
# > in the Software without restriction, including without limitation the rights
# > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# > copies of the Software, and to permit persons to whom the Software is
@ericphanson
ericphanson / Manifest.toml
Last active March 7, 2020 21:32
Generating and testing precompile statements for COSMO + Convex + MOI
# This file is machine-generated - editing it directly is not advised
[[AMD]]
deps = ["Libdl", "LinearAlgebra", "SparseArrays", "Test"]
git-tree-sha1 = "7b8e22e91af4ccbfbcae87c36d141441defe6f0f"
uuid = "14f7f29c-3bd6-536c-9a0b-7339e30b5a3e"
version = "0.3.1"
[[AbstractTrees]]
deps = ["Markdown"]
@ericphanson
ericphanson / Manifest.toml
Created May 1, 2020 13:13
Logging removes error. Julia bug?
# This file is machine-generated - editing it directly is not advised
[[AbstractFFTs]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "051c95d6836228d120f5f4b984dd5aba1624f716"
uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c"
version = "0.5.0"
[[AbstractNumbers]]
deps = ["SpecialFunctions"]
@ericphanson
ericphanson / Manifest.toml
Created June 6, 2020 16:36
EAGO / Gurobi / MOI error ?
# This file is machine-generated - editing it directly is not advised
[[ASL_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "7fa8d4626ddb4a142e82a8ce07279c1315803433"
uuid = "ae81ac8f-d209-56e5-92de-9978fef736f9"
version = "0.1.1+3"
[[Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
@ericphanson
ericphanson / Manifest.toml
Created June 26, 2021 23:55
TransformDagger
# This file is machine-generated - editing it directly is not advised
[[ArgTools]]
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
[[Artifacts]]
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
[[Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"